為什么主函數(shù)中關(guān)于jone的函數(shù)沒有%s就能直接輸出,而加了%s后反而報錯?
#include <stdio.h>
/* Jone算出結(jié)果應(yīng)該怎么寫函數(shù)? */
int joneResult(int x, int y, int z)
{
?? int sum = x+y+z;
??? return sum/3;//這里是不是應(yīng)該將sum返回呢?
}
/* Jack沒有算出結(jié)果只說了一句話是不是應(yīng)該用無返回值函數(shù)? */
void jackResult(int x, int y, int z)
{
??? printf("我算不出來\n");
}
int main()
{
??? int a, b, c;
??? a = 10;
??? b = 20;
??? c = 30;
??? //Jone的返回值類型是什么?
??? int jR = joneResult(a, b, c);
??? printf("Jone運(yùn)算結(jié)果是:%d\n", jR);
??? printf("Jack運(yùn)算結(jié)果是:%s,"jo);
??? //Jack沒有算出結(jié)果只說了句話,是不是直接調(diào)用函數(shù)就可以
??? int jo=jackResult(a,b,c);
??? return 0;
}
這是我的代碼,和答案的差別就在主函數(shù)中關(guān)于jone的運(yùn)算結(jié)果那兒。
2019-10-29
你這是啥謎之操作呀,我的天。
首先,你定義下的 void jackResult 是沒有返回值的,它在你的整個程序中只能起到一個輸出某語句的作用。
那么你的 int jo=jackResult(a,b,c) 是出了什么問題你應(yīng)該就懂了吧。
你定義下的 jo 是int型的,也就是整型變量,而你的jackResult連值都沒有,怎么給jo賦值。
最后,你的輸出語句中,%s代表字符串,而你給定它的量為 jo(也就是整數(shù),你定義的),那你加上%s怎么可能運(yùn)行成功。
我只能說,你需要重新加強(qiáng)一下對數(shù)據(jù)類型以及函數(shù)類型的溫習(xí),你好像把它們整混了。