![]() |
請問?C語言的這裡要怎ㄇ寫下去..???
各位大大~~我又來請教各位了.....小弟愚昧~~~請多多見諒....QQ"........
這個程式5ㄍ學生比較數學.英文.電算的成績.跟比較名次...5ㄍ人我不知道怎ㄇ比~"~??還有%d 怎ㄇ讓他顯示出來的是小數點~~比較出來的成績怎ㄇ把他丟到陣列去然後一起顯示出來~"~?? #include<stdio.h> void main() { int grade[5][3] = { {80,88,93}, {76,74,81}, {58,66,64}, {63,73,71}, {77,92,90}}; int i , j , sum1,sum2,sum3,sum4,sum5; int ave1,ave2,ave3,ave4,ave5; for (i=0;i<5;i++) { for(j=0;j<3;j++) { printf("%-3d",grade[i][j]); } printf("\n"); } sum1 = grade[0][0] + grade[0][1] + grade[0][2]; ave1 = sum1/3; sum2 = grade[1][0] + grade[1][1] + grade[1][2]; ave2 = sum2/3; sum3 = grade[2][0] + grade[2][1] + grade[2][2]; ave3 = sum3/3; sum4 = grade[3][0] + grade[3][1] + grade[3][2]; ave4 = sum4/3; sum5 = grade[4][0] + grade[4][1] + grade[4][2]; ave5 = sum5/3; printf("The first student's average is ===>%d \n",ave1); printf("The second student's average is ===>%d \n",ave2); printf("The third student's average is ===>%d \n",ave3); printf("The fourth student's average is ===>%d \n",ave4); printf("The fifth student's average is ===>%d \n",ave5); { int sum6,sum7,sum8; int ave6,ave7,ave8; sum6 = grade[0][0] + grade[1][0] + grade[2][0] + grade[3][0] + grade[4][0]; ave6 = sum6/5; sum7 = grade[0][1] + grade[1][1] + grade[2][1] + grade[3][1] + grade[4][1]; ave7 = sum7/5; sum8 = grade[0][2] + grade[1][2] + grade[2][2] + grade[3][2] + grade[4][2]; ave8 = sum8/5; printf("The all class's Math average is ===>%d \n",ave6); printf("The all class's English average is ===>%d \n",ave7); printf("The all class's Electronics average is ===>%d \n",ave8); } } |
>>還有%d 怎ㄇ讓他顯示出來的是小數點
我記得好像是加%3.2d的樣子 其他的要仔細研究才行ㄋㄟ <不確定,試試啦> |
%f就能顯示出小數點了…
|
%3.2d是空格喔~~~~就是你要留多少的距離在印出值
|
哇~~~ 這裡也有程式討論
我推一下 希望版大乾脆開一個版讓大家可以討論程式好嗎? 謝謝不飛大大 :) |
抱歉...
弄錯了... 太久沒寫C了 <Sorry> |
><"~~我是改成3.2一樣沒有跑出小數點來><"~~改F滴話會出現Debug error....><???感謝答覆滴各位大大~~有其他大大能幫忙想看看ㄇ><"~~~
我書快翻爛ㄌ><"~~還是找不到原因><"~~~ |
以下程式碼
sum1 = grade[0][0] + grade[0][1] + grade[0][2]; ave1 = sum1/3; sum2 = grade[1][0] + grade[1][1] + grade[1][2]; ave2 = sum2/3; sum3 = grade[2][0] + grade[2][1] + grade[2][2]; ave3 = sum3/3; sum4 = grade[3][0] + grade[3][1] + grade[3][2]; ave4 = sum4/3; sum5 = grade[4][0] + grade[4][1] + grade[4][2]; ave5 = sum5/3; 改成 sum1 = grade[0][0] + grade[0][1] + grade[0][2]; ave1 =(float) sum1/3; sum2 = grade[1][0] + grade[1][1] + grade[1][2]; ave2 = (float)sum2/3; sum3 = grade[2][0] + grade[2][1] + grade[2][2]; ave3 = (float)sum3/3; sum4 = grade[3][0] + grade[3][1] + grade[3][2]; ave4 = (float)sum4/3; sum5 = grade[4][0] + grade[4][1] + grade[4][2]; ave5 = (float)sum5/3; 試試看 記得最後要printf的時候,要把%d改成%f應該就可以了吧 |
依然失敗QQ"......加入(float)後~~再改%f 出現滴數字是小數點沒錯~"~...
不過出現滴是0.000000<---變這ㄍQQ"~~?? |
抱歉.....忘了宣告也要改浮點數
float ave1,ave2,ave3,ave4,ave5; float ave6,ave7,ave8; 這樣就可以了吧......(不行再來問...我已經成功了) |
#include <stdio.h>
void main() { int num[6][5],po[6]; int sum1,sum2,i,j,temp; printf("\1: 請輸入成績 \n"); for ( i = 0; i < 5; i++ ) for ( j = 0; j < 3; j++ ) scanf("%d",&num[i][j]); for ( i = 0; i < 5; i++ ) { sum1 = 0; for ( j = 0; j < 3; j++ ) sum1 += num[i][j]; num[i][3] = sum1 / 3; } for ( i = 0; i < 5; i++ ) { po[i] = num[i][3]; } for ( i = 0; i < 4; i++ ) for ( j = i + 1; j < 5; j++ ) if ( po[i] < po[j] ) { temp = po[i]; po[i] = po[j]; po[j] = temp; } for ( i = 0; i < 5; i++ ) { if ( num[i][3] == po[0] ) num[i][4] = 1; else if ( num[i][3] == po[1] ) num[i][4] = 2; else if ( num[i][3] == po[2] ) num[i][4] = 3; else if ( num[i][3] == po[3] ) num[i][4] = 4; else if ( num[i][3] == po[4] ) num[i][4] = 5; } for ( j = 0; j < 4; j++ ) { sum2 = 0; for ( i = 0; i < 5; i++ ) sum2 += num[i][j]; num[5][j] = sum2 / 5; } num[5][4]=0; for ( i = 0; i < 6; i++ ) printf("\2:%d %d %d %d %d \n",num[i][0],num[i][1],num[i][2],num[i][3],num[i][4]); } ============================================== <--這是同學滴答案...可是我不想抄襲~~我滴問題只剩下如何把ave1~5一起丟進陣列裡= =....排名要怎ㄇ讓他排出來(也是丟到陣列裡讓程式自己排名次) |
#include<stdio.h>
void main() { int grade[5][5] = { {80,88,93}, {76,74,81}, {58,66,64}, {63,73,71}, {77,92,90}}; int i , j , sum1,sum2,sum3,sum4,sum5; float ave1,ave2,ave3,ave4,ave5; for (i=0;i<5;i++) { for(j=0;j<3;j++) { printf("%-3d",grade[i][j]); } printf("\n"); } sum1 = grade[0][0] + grade[0][1] + grade[0][2]; ave1 = (float)sum1/3; sum2 = grade[1][0] + grade[1][1] + grade[1][2]; ave2 = (float)sum2/3; sum3 = grade[2][0] + grade[2][1] + grade[2][2]; ave3 = (float)sum3/3; sum4 = grade[3][0] + grade[3][1] + grade[3][2]; ave4 = (float)sum4/3; sum5 = grade[4][0] + grade[4][1] + grade[4][2]; ave5 = (float)sum5/3; printf("The first student's average is ===>%3.2f \n",ave1); printf("The second student's average is ===>%3.2f \n",ave2); printf("The third student's average is ===>%3.2f \n",ave3); printf("The fourth student's average is ===>%3.2f \n",ave4); printf("The fifth student's average is ===>%3.2f \n",ave5); { int sum6,sum7,sum8; float ave6,ave7,ave8; sum6 = grade[0][0] + grade[1][0] + grade[2][0] + grade[3][0] + grade[4][0]; ave6 = (float)sum6/5; sum7 = grade[0][1] + grade[1][1] + grade[2][1] + grade[3][1] + grade[4][1]; ave7 = (float)sum7/5; sum8 = grade[0][2] + grade[1][2] + grade[2][2] + grade[3][2] +grade[4] [2] ave8 = (float)sum8/5; printf("The all class's Math average is ===>%3.2f \n",ave6); printf("The all class's English average is ===>%3.2f \n",ave7); printf("The all class's Electronics average is ===>%3.2f\n",ave8); } { int i,j,tmp; int num[5] = {ave1,ave2,ave3,ave4,ave5}; for(i=0;i<2;i++) { for( j=0;j<4;j++) if (num[j]>num[j+1]) { tmp = num[j]; num[j]=num[j+1]; num[j+1] = tmp; } printf("\2:loop %d ",i); for(j=0;j<5;j++) printf("%4d",num[j]); printf("\n"); } printf("\2:排名 %d %d %d %d %d \n",5,4,3,2,1); } } ============================================== 這ㄍ是小弟滴程式........= =''請幫忙想辦法一下~~~~拜託ㄌ.......我一直丟不進ㄑ~~QQ"~~~ |
#include<stdio.h>
void main() { int grade[5][5] = { {80,88,93}, {76,74,81}, {58,66,64}, {63,73,71}, {77,92,90}}; int i , j , sum1,sum2,sum3,sum4,sum5; float ave[8]; for (i=0;i<5;i++) { for(j=0;j<3;j++) { printf("%-3d",grade[i][j]); } printf("\n"); } sum1 = grade[0][0] + grade[0][1] + grade[0][2]; ave[0] = (float)sum1/3; sum2 = grade[1][0] + grade[1][1] + grade[1][2]; ave[1] = (float)sum2/3; sum3 = grade[2][0] + grade[2][1] + grade[2][2]; ave[2] = (float)sum3/3; sum4 = grade[3][0] + grade[3][1] + grade[3][2]; ave[3] = (float)sum4/3; sum5 = grade[4][0] + grade[4][1] + grade[4][2]; ave[4] = (float)sum5/3; printf("The first student's average is ===>%3.2f \n",ave[0]); printf("The second student's average is ===>%3.2f \n",ave[1]); printf("The third student's average is ===>%3.2f \n",ave[2]); printf("The fourth student's average is ===>%3.2f \n",ave[3]); printf("The fifth student's average is ===>%3.2f \n",ave[4]); { int sum6,sum7,sum8; sum6 = grade[0][0] + grade[1][0] + grade[2][0] + grade[3][0] + grade[4][0]; ave[5] = (float)sum6/5; sum7 = grade[0][1] + grade[1][1] + grade[2][1] + grade[3][1] + grade[4][1]; ave[6] = (float)sum7/5; sum8 = grade[0][2] + grade[1][2] + grade[2][2] + grade[3][2] +grade[4][2]; ave[7] = (float)sum8/5; printf("The all class's Math average is ===>%3.2f \n",ave[5]); printf("The all class's English average is ===>%3.2f \n",ave[6]); printf("The all class's Electronics average is ===>%3.2f\n",ave[7]); } { int i,j,tmp; int num[5]; for(i=0;i<5;i++) num[i]=ave[i]; for(i=0;i<2;i++) { for( j=0;j<4;j++) if (num[j]>num[j+1]) { tmp = num[j]; num[j]=num[j+1]; num[j+1] = tmp; } printf("\2:loop %d ",i); for(j=0;j<5;j++) printf("%4d",num[j]); printf("\n"); } printf("\2:排名 %d %d %d %d %d \n",5,4,3,2,1); } } 可以了吧.......不懂再來問 |
所有時間均為台北時間。現在的時間是 10:06 PM。 |
Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2025, Jelsoft Enterprises Ltd.
『服務條款』
* 有問題不知道該怎麼解決嗎?請聯絡本站的系統管理員 *