程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c-求和問題 簡單的不能再簡單了 可惜有瑕疵

c-求和問題 簡單的不能再簡單了 可惜有瑕疵

編輯:編程解疑
求和問題 簡單的不能再簡單了 可惜有瑕疵

輸入 m 和n 求m一直加到n代碼如下

# ## #include ********_

# ## int main()

# ## {

# ## int m,n,b=0;

# ## long int sum=0;

# ## scanf("%d%d",&m,&n);

# ## if(n>=m)

# ## {

# ## if(n==m)

# ## {

# ## printf("%d",m);

# ## }

# ## else{

# ## for(;m<=n;m++)

# ## {

# ## sum=sum+m;

# ## }

# ## printf("%ld\n",sum);

# ## }

# ## }

# ## if(n<m){

# ## b=n;

# ## n=m;

# ## m=b;

# ## for(;m<=n;m++)

# ## {

# ## sum=sum+m;

# ## }

# ## printf("%ld",sum);

# ## }

# ## return 0;

# ## }********_

錯誤的地方在if(m>n)當我把它換成else的時候就對了但是寫成if(m>n)不是一個意思
嗎? 不知道為什麼求解答

最佳回答:


只要樓主輸入的兩個數,前一個比後一個小,也就是滿足n>=m
那麼會進入第一個if分支,而這個分支裡的for循環會對m進行++運算,for循環結束時,m會大於n(大了1)
然後判斷第二個if語句,if(n<m)滿足,又進入了這個if分支,所以會打印兩次(這就是瑕疵所在,改成else就不會進入這個循環,或者不要改變m的值)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved