1樓:
給程式修改如下兩處即可:
將*search函式的定義放在main函式前或者將*search函式在main函式前要進行宣告;
main函式中float *search(),*p;用法不對,float *search()是一個完全無意義、錯誤的用法,其不是一個變數,不用定義,改語句直接修改為 float *p即可。
修改後執行無錯誤的程式為:
#include
float *search(float (*s)[4],int n);
void main()
,,,};
float *p;
int i,m;
printf("enter the number of student:");
scanf("%d",&m);
printf("the score of no. %d are :\n",m);
p=search(score,m);
for(i=0;i<4;i++)
printf("%6.2f\t",*(p+i));
}float *search(float (*s)[4],int n)
2樓:
這個程式在c中沒有錯誤,但在c++中不能通過編譯。
原因就在於c對型別查檢不嚴格,而c++卻是嚴格的。
在第五行對函式search()的說明與後續的呼叫和定義產生型別查檢不匹配錯誤:
只要在第五行改float *search()為float *search(char (*s)[4],int n)即可。
3樓:斬不斷的風
第五行:
float *search(),*p;
函式宣告不能在main函式裡面,把她提 出去就好了。
c語言程式不知道哪錯了,一個C語言程式的修改。不知道錯在哪了。
不能這樣賦值。你可以 include stdio.h struct student s 2 int main 另外 注意只有2個元素。你新建了s 2 然後這兩個陣列元素應該是s 0 和s 1 啊,不是s 1 和s 2 後面for迴圈y也應該是i 2。看了樓下回答我想說說我的想法 首先 簡潔之道 推薦...
求找c語言錯誤,求找C語言錯誤
你在str c 81 應該傳一個陣列的首地址吧,還有子函式的引數那應該是個指標,這樣傳過去函式才能對句子進行解析 include include int x,y,z,w int main void str char s 如上,首先你的 不安全,也出現了陣列越界的情況,其次,函式引數定義方式不合理,非...
c語言,不知道錯哪裡了,thankyou
while b a 你這句是不是再看看 這可是賦值符號會永遠成立然後一直執行 最後超出其中一個指標 然後崩了。char s a b t 80 相當於 char s a b char t 80 是不是發現多了個星星 切計切計 不要偷懶最好寫成 char s a b char t 80 你沒有用英文的符...