我想利用回傳指標函式來判斷莫些同學個別科目不及格,并且想輸出他們的學號級成績,但是我這個始終輸不出來結果,希望大佬指點一下,謝謝了
#include"stdio.h"
int main()
{
float grade[][4]={60,70,80,90,56,89,67,88,34,78,90,66};//存放成績
float *search(float(*pointer)[4]);
float *p;
int i,j;
for(i=0;i<3;i++)
{
p=search(grade+i);
if(p==*(grade+i))
printf("No.%d",i);//輸出學號
for(j=0;j<4;j++)
printf("%5.2f",*(p+j));// 輸出滿足條件的學生的成績
printf("\n");
}
}
float *search(float(*pointer)[4])
{
float *pt;
int i=0;
pt=NULL;
for(;i<4;i++)
if(*(*pointer+i)<60)pt=*pointer;
return pt;
}
uj5u.com熱心網友回復:
供參考:#include"stdio.h"
int main(int argc, char* argv[])
{
float grade[][4]={60,70,80,90,56,89,67,88,34,78,90,66};//存放成績
float *search(float(*pointer)[4]);
float *p;
int i,j;
for(i=0;i<3;i++)
{
p=search(grade+i);
if(p){ //if(p==*(grade+i)){
printf("No.%d ",i+1);//輸出學號
for(j=0;j<4;j++)
printf("%6.2f",*(*(grade+i)+j));// 輸出滿足條件的學生的成績
printf("\n");
}
}
//system("pause");
return 0;
}
float *search(float(*pointer)[4])
{
float *pt;
int i;
pt=NULL;
for(i=0;i<4;i++)
if(*(*pointer+i)<60) pt=(*pointer+i);
return pt;
}
uj5u.com熱心網友回復:
樓主的方法:#include"stdio.h"
int main()
{
float grade[][4]={60,70,80,90,56,89,67,88,34,78,90,66};//存放成績
float *search(float(*pointer)[4]);
float *p;
int i,j;
for(i=0;i<3;i++)
{
p=search(grade+i);
if(p==*(grade+i)){
printf("No.%d",i+1);//輸出學號
for(j=0;j<4;j++)
printf("%6.2f",*(p+j));// 輸出滿足條件的學生的成績
printf("\n");
}
}
// system("pause");
return 0;
}
float *search(float(*pointer)[4])
{
float *pt;
int i;
pt=NULL;
for(i=0;i<4;i++)
if(*(*pointer+i)<60)pt=*pointer;
return pt;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/251849.html
標籤:C語言
上一篇:C語言全域變數問題,大佬救命
