簡易計算機c語言源碼,

來源:互聯網
上載者:User

標籤:格式   算術   getc   計算機   tchar   etc   ase   break   char   

本人新學,

用的都是最基本的語句,

程式功能不完善,

有以下問題,

1.大資料無法計算,

2.較大整型資料輸出為浮點型,(因為是老師布置的作業,有要求含實數的算術計算輸出要含小數。

3.無法用()提升運算優先順序,

歡迎提出改進意見

代碼附上:

void fun1()//算術運算函數
{
char a[20][30],b[20];
double c[20],s;
int i,j,k,flag;
system("cls");//
printf("輸入算術式\n格式如:31+42*21/43-2\n斷行符號輸出運算結果.");
do{
fflush(stdin);
flag=0;
system("pause");
system("cls");
for(i=0; i<20; i++)//迴圈語句輸入
{
k=i;
for(j=0;; j++)
{
a[i][j]=getchar();//字元數組中每行儲存一串數字與一個運算子或斷行符號符
if(a[i][j]==‘\n‘||a[i][j]==‘+‘||a[i][j]==‘-‘||a[i][j]==‘*‘||a[i][j]==‘/‘)
{
b[i]=a[i][j];
a[i][j+1]=‘\0‘;
break;
}
}
if(b[i]==‘\n‘)break;
}
for(i=0; i<=k; i++)//判斷輸入是否合法
{
if(!(a[i][0]<=‘9‘&&a[i][0]>=‘0‘||a[i][0]==‘\n‘))
flag=1;
for(j=0; a[i][j+1]!=‘\0‘; j++)
{
if(!(a[i][j]<=‘9‘&&a[i][j]>=‘0‘||a[i][j]==‘\n‘))
flag=1;
if(flag)break;
}
if(flag)break;
}
if(flag)printf("輸入錯誤,請重新輸入!\n");
}
while(flag);
for(i=0; i<=k; i++)//判斷輸入數字是否有浮點型
{
for(j=0; j<10; j++)
if(a[i][j]==‘.‘)flag=1;
c[i]=atof(a[i]);//將字串中數字字元轉換為浮點型
}
for(i=0; b[i]!=‘\n‘; i++)//根據優先順序先計算乘除
{
switch(b[i])
{
case ‘*‘:
c[i]*=c[i+1];
c[i+1]=c[i];
for(j=i; j!=0; j--)
{
if(b[j-1]==‘*‘||b[j-1]==‘/‘)
c[j-1]=c[j];
else break;
}
break;
case ‘/‘:
c[i]/=c[i+1];
c[i+1]=c[i];
for(j=i; j!=0; j--)
{
if(b[j-1]==‘*‘||b[j-1]==‘/‘)
c[j-1]=c[j];
else break;
}
break;
}
}
s=c[0];
for(i=0; b[i]!=‘\n‘; i++)
switch(b[i])
{
case ‘+‘:
s+=c[i+1];
break;
case ‘-‘:
s-=c[i+1];
break;
}
if(!flag)//整型浮點型判斷
if(!(s==(int)s)) flag=1;
if(!flag) printf("%d\n",(int)s);//判斷輸出為浮點型還是整形並輸出
else printf("%f\n",s);
system("pause");
}

簡易計算機c語言源碼,

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.