1樓:匿名使用者
while(c!='q')//當c不等於q時,執行大括號內的語句
所以當輸入一個q時,c等於q,while語句的條件判斷變成了假,迴圈就結束,大括號內的列印語句沒有執行,自然也不會有q被列印出來了。
2樓:匿名使用者
c為q時,你的程式就退出了!
3樓:匿名使用者
當輸入為「q」時就不滿足while的條件自然不會輸出『q』,你的輸出是在while中做的
為什麼c語言程式執行輸入後沒有輸出
4樓:
輸入格式不對,要輸入「浮點數」並用 「逗號」 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,
如果把scanf("%f,%f,%f\n",&a,&b,&c);
改為scanf("%f%f%f",&a,&b,&c);
就可以用空白符做分隔了,現在你的程式是指定要用半形逗號做分隔符用回車做最後字元
另外程式邏輯也差一點,沒檢查(b*b-4*a*c)是否小於0,小於0則沒有實數解了
5樓:匿名使用者
一般輸入內容的時候不加'\n'
如果加了 你輸入第一次資料後 enter 在輸入一次
6樓:匿名使用者
1、原因可能是輸入格式不對,要輸入「浮點數」並用 「逗號」 分隔輸入三個數兩個逗號後還要額外多加一回車才開始後面的流程,
如果把scanf("%f,%f,%f\n",&a,&b,&c);
改為scanf("%f%f%f",&a,&b,&c);
就可以用空白符做分隔了
2、沒有輸出,不知道計算的結果那演算法就沒有意義了。輸出不一定是要列印到螢幕上的,可以是下一個程式的輸入,可以是一個檔案、一段語音、一張影象,甚至是機器人的步行動作等等。
7樓:簫聚星月
改成這樣#include
#include
void main()
輸入資料用逗號分開,標頭檔案是math.h
8樓:匿名使用者
試過多次回車嗎?你肯定你的輸入方式正確嗎?
9樓:匿名使用者
scanf("%f,%f,%f\n",&a,&b,&c);
改成scanf("%f,%f,%f",&a,&b,&c);
就可以了
10樓:葡萄味的栗子殼
是不是低階錯誤 scanf忘加&
關於一個很簡單的c語言程式設計,為什麼總是不能輸出?
11樓:
m=max(m-n,n);
n=min(m-n,n);
a=m-n;
這裡不正確,第一句m被重新賦值了,導致第二句的m與第一句的值不一樣。
12樓:
#include
int max(int x,int y)
int min(int p,int q)
int main()
if(m>n)
printf("兩者的最大公約數是%d,最小公倍數是%d\n",m,c/m);
}if(m0)//原來程式的m,n值被改變導致死迴圈printf("兩者的最大公約數是%d,最小公倍數是%d\n",n,c/n);
}return 0;}
c語言程式 為什麼不能執行
13樓:千鋒教育
你這裡去掉&c
不去掉輸出的是c變數的地址
c語言:分析以下程式的輸出結果
14樓:匿名使用者
f1()中,name是指標,所以,在函式中,可以改變其中的內容,進而改變了實參中的內容;而num是普通變數,所以,在函式中的變化,不會影響其實參的值
f2()中,q是指標,所以,在函式中,可以改變其中的內容,進而實參中的內容也就發生了變化
p=&s[1]; //p->name="lisiguo" p->num=20042
f1(p->name,p->num) 會改變p->name("sundan"),而p->num不變
f2(&s[0]); s[0]中的內容,全部由子函式中的資料所替換,變為:"sundan",20044
所以,輸出結果為:
sundan 20042
sundan 20044
以下c語言程式,輸出為什麼是17?
15樓:擁雲莊主
你這段**能編譯通過?最少有三個地方需要修改:
1,funa函式沒有返回值,按題目意思它應該返回int型
2,funb函式同1
3,sub函式,第一個引數是個函式指標,這個函式指標的定義如下:
int(*t)()
說明它返回int型,並且沒有引數,但是在sub裡呼叫的時候又是這樣的:
return(*t)(x,y);
這裡在編譯的時候肯定會報錯,因為函式的引數個數都不對,按題目意思,sub函式應該是這樣:
sub(int(*t)(int ,int),int x,int y) //函式指標t指標的函式應該有兩個int型的引數
而且,在main函式裡呼叫的時候,p這個函式指標也是有兩個int型引數的:
int x,(*p)(int,int);
所以,**應該修改成這樣才能編譯通過:
#include
int funa(int a,int b)
int funb(int a,int b)
int sub(int(*t)(int , int),int x,int y)
int main()
它的計算過程是通過函式指標來呼叫funa和funb兩個函式,並且把這兩個函式的計算的結果相加,而這兩個函式,funa用來計算兩個數的和,funb用來計算兩個數的差。
所以:x=sub(p,9,3);//計算9和3的和,結果是12
x+=sub(funb,8,3);//計算8和3的差,並和12相加,所以,最終x為17
測試截圖如下:
前兩個問題,有的編譯器能通過隱式轉換處理掉,也許不會報錯,但第三個問題是明顯的錯誤,編譯會有問題。
再補充一下,我剛才找了幾種編譯器試了一下,c語言支援這種寫法,編譯正常,但用c++編譯器編譯的時候報錯。樓主說明這是個c程式,那應該沒問題,不過這種**看上去會讓人很迷惑,建議還是把函式指標的引數列表寫全。個人意見,僅供參考。
16樓:匿名使用者
sub(int(*t)(),int x,int y) 是一個自定義的函式,函式體為return(*t)(x,y);意思是返回t指標指向的函式的返回值。比如後面x=sub(p,9,3)返回的就是以p代表的函式funa(),並且以9,3為實參的值,相當於求funa(9,3)
17樓:匿名使用者
sub(int(*t)(),int x,int y)是一個函式的實現
函式名sub
引數int(*t)()是函式指標
(*t)(x,y);
呼叫指標指向的函式。
一開始p=funa
x=funa(9,3) = 12
然後 x+=funb(8,3)
x = 12+(8-3) =17
c語言有以下程式c語言有以下c程式includestdiohintmain
第一次進switch的bai時候du由於你的case 0 printf another n 後面沒有zhibreak 所以繼續執行了case 1 printf number n 結果就dao列印出來了 another number 第二專次switch的時候關於字元 1 匹配屬 case 1 pri...
C語言初級有以下程式段輸出結果是
for i 1 i 15 j 4 一定是給錯了,應該是for i 1 i 15 i 4 取4個值1,5,9,13 for j 3 j 19 j 4 m 會執行5次m 也就是m 5,j分別取3,7,11,15,19 兩個迴圈是巢狀關係,合計執行為4 5 20。外層迴圈應該是 for i 1 i 15 ...
c語言 輸出之間素數 的程式,c語言 輸出 m,n 之間素數 的程式
首先根據數學規則,編寫判斷素數的程式。然後按照如下思路 1 輸入m和n 2 對 m,n 的整數進行遍歷。3 對每個數值進行判斷,如果是素數,則輸出。include include int is prime int n int main main 函式呼叫 f int x if floy 1 prin...