English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
所有分類

#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 if(score[i][j])<60){ //要換成指標
printf("學生%d的分數:",i);
for(s=0;s printf("%3d",score[i][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

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 if(*(score+i*4+j) < 60){ //要換成指標
printf("學生%d的分數:",i);
for(s=0;s printf("%3d", *(score+i*4+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("%3d",score[i][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

fedest.com, questions and answers