#include
void search(int *ptr,int rows,int cols){
int i,j,s=0;
printf("至少有一科不及格之學生成績\n");
printf("--------------------------\n");
for(i=0;i
for(j=0;j
printf("學生%d的分數:",i);
for(s=0;s
printf("\n");
break;
}
}
}
}
int main(void)
{
int score[3][4]={{57,65,90,60},{70,87,58,81},{81,66,78,92}};
int students=sizeof(score)/sizeof(score[0]);
int courses=sizeof(score[0])/sizeof(score[0][0]);
search(*score,students,courses);
scanf(" ");
return 0;
}
我想很久想不到 麻煩各位幫忙 有詳細說明更好
2007-01-02 06:52:58 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 程式設計
謝謝 不過主程式的search(*score,students,courses);不能動 副程式需用指標接 這要怎改???
2007-01-02 08:45:14 · update #1
感謝JJ的教導 ~
2007-01-02 10:00:09 · update #2
void search(int *score,int rows,int cols){ // 與內容不合
int i,j,s=0; // 不需要
printf("至少有一科不及格之學生成績\n");
printf("--------------------------\n");
for(i=0;i
for(j=0;j
printf("學生%d的分數:",i);
for(s=0;s
printf("\n");
break;
}
}
}
}
search(score, students, courses); //副程式需用指標接時, 主程式一定要傳位址. 況且在主程式裡沒有 *score 這東西. 因為它不是指標
另外 希望這祇是在練習指標 因為直接在記憶體上用 i, j 移動位址存取資料是很不好的習慣. 容易造成當機毀損重要資料.
如果有問題, 請來函討論. 不然, 我可能會錯失你再補充的疑點.
2007-01-02 09:22:51 · answer #1 · answered by JJ 7 · 0⤊ 0⤋
我幫你排版了一下
更正:用指標傳二維陣列
使用者要告訴程式 你的二維陣列 需要經過多少元素後 換列
至於換行則不必 ! 且 二維陣列 並不想書上畫的一樣
它並非四邊形 這只是方便人類假想
它其實是連續的 你要告訴他 經過多少元素後 就是第二列
此例就是經過4個元素 就表示進入第二列
建議要宣告複函式
雖然你先把複函式主體擺前面 讓主函式認的到
有的編譯器(LINUX GCC)是OK的
但還是建議要宣告
#include
#include
void search(int [][4],int,int);
void search(int score[][4],int rows,int cols)
{
int i,j,s=0;
printf("至少有一科不及格之學生成績\\n");
printf("--------------------------\\n");
for(i=0;i
for(j=0;j
if(score[i][j]<60)
{
printf("學生%d的分數:",i);
for(s=0;s
printf("\\n");
break;
}
}
}
}
int main(void)
{
int score[3][4]={{57,65,90,60},{70,87,58,81},{81,66,78,92}};
int students=sizeof(score)/sizeof(score[0]);
int courses=sizeof(score[0])/sizeof(score[0][0]);
printf("%d\\n",students);
printf("%d\\n",courses);
search(score,students,courses);
system("PAUSE");
return 0;
}
不要聽我亂唬爛
2007-01-02 07:35:35 · answer #2 · answered by Anonymous · 0⤊ 0⤋