十年網(wǎng)站開發(fā)經驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
PTA | 程序設計類實驗輔助教學平臺
在開始寫這道題之前我們需要先了解一下isdigit函數(shù),這里我就推薦一篇別人的博客來了解一下C語言isdigit函數(shù)介紹、示例和實現(xiàn)_C語言技術網(wǎng)-碼農有道的博客-博客_c語言isdigit函數(shù)
當然除了判斷是不是數(shù)字的函數(shù),也有判斷是否為字母的函數(shù)isalphaC語言isdigit函數(shù)介紹、示例和實現(xiàn)_C語言技術網(wǎng)-碼農有道的博客-博客_c語言isdigit函數(shù)
解題
我們先創(chuàng)建一個循環(huán)不停的從鍵盤上獲取字符,并不斷判斷是否為數(shù)字,知道我們讀到空格,再獲取第二數(shù)字即可。
代碼實現(xiàn)
while ((ch = getchar()) != '\n')
{
//第一個數(shù)字
if (!flag)
{
if (isdigit(ch) && a != -1)
a = a * 10 + (ch - '0');
else if (ch == ' ')
flag = 1;
else
a = -1;
}
//第二個數(shù)字
else
{
if (isdigit(ch) && b != -1)
b = b * 10 + (ch - '0');
else
b = -1;
}
}
這里我們注意只要我們讀到的不是換行,我們就可以一直讀,我們先假設輸入的兩個字符串是數(shù)字的話,那么對應的a,b就為0,如果不是那么就是-1。如果輸入的是空格的話,我們就讓flag由0變?yōu)?,進入下一個字符的輸入和判斷。
#include#includeint main()
{
int a=0;
int b=0;
int flag=0;
char ch=0;
while((ch=getchar())!='\n')
{
//第一個數(shù)字
if(!flag)
{
if(isdigit(ch)&&a!=-1)
a=a*10+(ch-'0');
else if(ch==' ')
flag=1;
else
a=-1;
}
else
{
if(isdigit(ch)&&b!=-1)
b=b*10+(ch-'0');
else
b=-1;
}
}
if(a>1000||a<1)
a=-1;
if(b>1000||b<1)
b=-1;
if(a!=-1&&b!=-1)
printf("%d + %d = %d",a,b,a+b);
else if(a==-1&&b!=-1)
printf("? + %d = ?",b);
else if(a!=-1&&b==-1)
printf("%d + ? = ?",a);
else if(a==-1&&b==-1)
printf("? + ? = ?");
return 0;
}
以上就是完整代碼。
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧