C語言為什麼這個程式執行沒有輸出的結果?與結構體陣列有關

時間 2022-05-23 07:45:07

1樓:防禦

十四行:struct student *p=stu;//中間加個student

二十九行:if(strcmp(stu[i].major,"t")==0)//因為是字串,所以要用雙引號,而不是單引號。

三十二行:else if (strcmp(stu[i].major,"w")==0)//同理

三十五行:else if (strcmp(stu[i].major,"l")==0)//同理

為什麼c語言程式執行輸入後沒有輸出

2樓:

輸入格式不對,要輸入「浮點數」並用 「逗號」 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,

如果把scanf("%f,%f,%f\n",&a,&b,&c);

改為scanf("%f%f%f",&a,&b,&c);

就可以用空白符做分隔了,現在你的程式是指定要用半形逗號做分隔符用回車做最後字元

另外程式邏輯也差一點,沒檢查(b*b-4*a*c)是否小於0,小於0則沒有實數解了

3樓:匿名使用者

一般輸入內容的時候不加'\n'

如果加了 你輸入第一次資料後 enter 在輸入一次

4樓:匿名使用者

1、原因可能是輸入格式不對,要輸入「浮點數」並用 「逗號」 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,

如果把scanf("%f,%f,%f\n",&a,&b,&c);

改為scanf("%f%f%f",&a,&b,&c);

就可以用空白符做分隔了

2、沒有輸出,不知道計算的結果那演算法就沒有意義了。輸出不一定是要列印到螢幕上的,可以是下乙個程式的輸入,可以是乙個檔案、一段語音、一張影象,甚至是機械人的步行動作等等。

5樓:簫聚星月

改成這樣#include

#include

void main()

輸入資料用逗號分開,標頭檔案是math.h

6樓:匿名使用者

試過多次回車嗎?你肯定你的輸入方式正確嗎?

7樓:匿名使用者

scanf("%f,%f,%f\n",&a,&b,&c);

改成scanf("%f,%f,%f",&a,&b,&c);

就可以了

8樓:葡萄味的栗子殼

是不是低階錯誤 scanf忘加&

為什麼我的c語言程式沒有輸出?哪錯了?

9樓:噘嘴鰱子朋友

首先指出你寫的一處錯誤,fun函式沒有返回值。你要麼定義為void,既然定義成int,就要返回資料。

**可能需要優化下....

輸入定義成字串,不必用char陣列,然後如果用while就用while,用for就用for,幹嘛都一起用,大致可以這麼寫(自己定義下變數,另外沒必要把變數定義到和main fun乙個級別,這樣不利於釋放空間,就用區域性變數,然後fun可以用傳參的方式)

int i=0;

scanf('%s',&str)

while(str[i]!=條件)

10樓:匿名使用者

對字串應該使用字串結束標誌進行檢測,即測試fun函式while迴圈裡的a[ⅰ]!=0判斷到了字串末尾,回車鍵在輸入時不會輸入到字元陣列裡面。

11樓:匿名使用者

仔細看了你的題目要求和你編寫c語言程式,單從程式看看不出有問題,我沒有c語言程式設計工具,無法除錯,只能給你一些建議,第乙個建議使用程式設計工具通過的斷點跟蹤除錯,找出問題。第二個建議,增加輸出語句,列印中間變數,靜態分析。

12樓:匿名使用者

把while(a[i]!='\n')

改為if(a[i]!='\n')

事實上這句語句不寫也行

13樓:匿名使用者

while ( a[i]!='\n' )

改成while ( a[i]!=0 )

c語言。為什麼這個沒有輸出?

14樓:匿名使用者

因為scanf在等待輸入

15樓:屠蕙若季靜

哥們,從你這個程式來看,在迴圈體中你的

a一直是12345,所以

i一直為:i=1234,你說逃出怎麼迴圈嘛,猜出你的大概意思:

修改後的程式如下:

#include

intmain

(void)

printf

("a=

%d\ni

=%d\nn

=%d\n",

a,i,

n);return0;}

執行結果:i=a=0,n=5

16樓:匿名使用者

輸入了才會有輸出,也可以一步一步執行看看**出了問題

為什麼這個c語言程式執行不出結果

17樓:匿名使用者

#include

int main()

18樓:tt靜水深流

兩個scanf都 少了&,並且%d與%d之間最好什麼東西都不要

c語言二維陣列的輸入和輸出程式為什麼執行沒有結果啊?程式:

19樓:匿名使用者

我看了看 程式沒有問題。上面兩層為輸入二維陣列。

下面兩層為輸出二維陣列。

該程式缺乏標頭檔案。在有些編譯器裡需要帶#include主程式最好設定返回型別 ,你現在還體會不到,後期就體會到了。

int main()

20樓:倒霉熊

#include

int main()

return 0;

}//這是比較完整的乙個程式。

//不知道現象是什麼??

21樓:匿名使用者

首先,你主函式中沒有定義它的型別,在c語言中預設是int型的,這樣的話函式要有乙個返回值。實在沒有返回值的時候return 0;也就ok了。一般情況下主函式都是沒有返回值的,也常寫成void main ()

其次,你的陣列容量太大了,何不定義乙個小的呢!100個!真夠乙個人打好大一會的

22樓:影視精剪小能手

連續的for迴圈 please 加上{},這是規則,如果是乙個就不用了,你的是用了三個,就最後乙個加了,有時候是不會識別的!

Linux中,執行C語言程式如何執行

柳語柳塗野 在linux中,可以使用gcc編譯器編譯c語言程式,生成可執行檔案,並最終執行。具體步驟如下 1 編譯。由.c檔案生成.o檔案,寫作 gcc a.c o a.o c這個命令可以將a.c編譯成a.o。如果存在多個檔案,可以逐個編譯,即a.c b.c.生成a.o b.o.等。2 鏈結。由.o...

C語言switch這個程式的執行結果是什麼

甄安秋梵 沒有 case 0 就不做 再做最外層的default 輸出 再換行,結束程式 switch是這樣的,在沒有遇到break跳出迴圈之前是以次向下執行的。首先 a 0為真 即 1 所以進入case 1 b 0為假 即 0 但是下面的選擇結構 沒有case 0 那麼接著向下執行 case 0....

c語言程式執行結果為什麼出現1 INF

是因為運算結果溢位。解決辦法,例 chara 126,則a 45 126 45 172 256 85 uchara 2,則a 100 98 256 158 a,b基本型別相同時,有符號與無符號數的轉換 無符號a 有符號b if a elseb a max count 有符號數a 無符號數b if a...