先貼結果(我發不了圖片,手打命令窗)
請輸入參與計算數字的個數:
請輸入算式:
1-1+1
n[0]=1 n[2]=1 n[4]=1 result0=1
n[1]=-3 n[2]-=1 n[3]=0 n[4]=1 n[5]=0 result=2
就是1-1+1=2
???
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{
{
printf("hw 附加題\n");
int i,j=0,result,sz;
printf("請輸入參與計算數字的個數:\n");
scanf("%d",&sz); /*sz是計算數字個數,控制一下回圈條件,防止后面出現多余的奇怪的項*/
getchar(); //吸識訓車
printf("請輸入算式:\n");
char a[2*sz-1],n[2*sz-1],tmp;
gets(a);
//這一段是將字符轉化為整型
for(int i=0;i<2*sz-1;i++)
{
if(a[i]!='\n') //遇回車結束,然并卵
{
if(a[i]<='9'&&a[i]>='0')
{
n[i]=a[i]-'0';
printf("n[%d]=%d ",i,n[i]);
}
}
else break;
}
result=n[0];
// printf("result0=%d",result);
//下面這段就是計算加減
for(i=0;i<2*sz-1;i++)
{
if(a[i]!='\n')
{
if(a[i]='45') //減號的ASCII碼為45
{
printf("n[%d]=%d ",i+1,n[i+1]);
result-=n[i+1];
}
else if(a[i]='43') //加號
{
result+=n[i+1];
}
}
else break;
}
printf("result=%d",result);
}
麻煩幫忙看看
uj5u.com熱心網友回復:
供參考:#include <stdio.h>
#include <math.h>
#include <stdlib.h>
void main()
{
//{ //這里多了‘{’
printf("hw 附加題\n");
int i,j=0,result,sz;
printf("請輸入參與計算數字的個數:\n");
scanf("%d",&sz); /*sz是計算數字個數,控制一下回圈條件,防止后面出現多余的奇怪的項*/
getchar(); //吸識訓車
printf("請輸入算式:\n");
char *a = new char[2*sz-1],*n = new char[2*sz-1],tmp;//char a[2*sz-1],n[2*sz-1],tmp;
gets(a); //動態的char[]
//這一段是將字符轉化為整型
for(int i=0;i<2*sz-1;i++)
{
if(a[i]!='\n') //遇回車結束,然并卵
{
if(a[i]<='9'&&a[i]>='0')
{
n[i]=a[i]-'0';
printf("n[%d]=%d ",i,n[i]);
}
}
else break;
}
result=n[0];
// printf("result0=%d",result);
//下面這段就是計算加減
for(i=0;i<2*sz-1;i++)
{
if(a[i]!='\n')
{
if(a[i]=='-')//if(a[i]='45')//這里是‘== ’ //減號的ASCII碼為45
{
printf("n[%d]=%d ",i+1,n[i+1]);
result-=n[i+1];
}
else if(a[i]=='+')//else if(a[i]='43') 這里是‘==’ //加號
{
result+=n[i+1];
}
}
else break;
}
printf("result=%d",result);
delete []a;delete []n;
}
uj5u.com熱心網友回復:
快被整瘋了,雖然這已經是最簡單的計算器了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269223.html
標籤:C語言
