首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C 語言統計字元類型:while 迴圈多一個分號導致邏輯錯誤

     編輯:程式設計綜合問答

錯誤代碼

while((c=getchar())!='\n');
{
    if(((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z'))) letters+=1;
    else if(c==' ') spaces+=1;
    else if(c>='0'&&c<='9') numbers+=1;
    else others+=1;
}

問題分析

while 後方多了一個分號 ;,導致迴圈本體為空語句,真正的處理區塊變成獨立的程式區塊,僅執行一次,且 c 保留迴圈結束時的值(換行符),故統計結果永遠是 0 0 0 1(換行符歸類為 other)。

正確寫法

while((c=getchar())!='\n')
{
    if(((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z'))) letters+=1;
    else if(c==' ') spaces+=1;
    else if(c>='0'&&c<='9') numbers+=1;
    else others+=1;
}

移除分號,將處理邏輯置於迴圈本體內,即可正確統計輸入字元。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved