希望各位能帮我解决一下这个小问题
本帖最后由 无情修罗 于 2014-12-16 22:45 编辑#include<stdio.h>
int main()
{
int d1,d2;
double sum;
char op;
printf("Please input data1 op data2:");
scanf("%d%c%d",&d1,&op,&d2);
switch(op)
{
case'+':printf("\n%d+%d=%0.lf",d1,d2,(double)d1+d2);break;
case'-':printf("\n%d-%d=%0.lf",d1,d2,d1-d2);break;
case'*':printf("\n%d*%d=%0.lf",d1,d2,(double)d1+d2);break;
case'/':
if(d2==0)
printf("\nError! chu shu wei 0.\n");
else
sum=(double)d1/d2;
printf("\n%d/%d=%ld",d1,d2,sum);break;
default:
printf("\nError");
}
return 0;
}
下面是题目:
编写一个简单计算器程序,输入格式为:data1 op data2。其中data1和data2是参加运算的两个数(data1、data2必须定义为int,但二者相加可能超出int能表示的范围),op为运算符,它的取值只能是+、-、*、/、%。编程可用素材:printf("Please input data1 op data2: ")、printf("\nError! chu shu wei 0.\n")。
这个是我提交答案时的提示:
失分,未实现:格式符合要求,与示例一致
失分,未实现:加法计算正确
失分,未实现:减法计算正确
失分,未实现:乘法计算正确
失分,未实现:除法计算正确
失分,未实现:模运算计算正确
失分,未实现:当运算结果超出int型范围时计算正确
那个图是输出格式
输入函数scanf("%d %c %d",&data1,&op,&data3); %d和%c要有空格 结果要整形(将double改为int),还差一个case '%',else后要用{}括起来(因为那是语句块!);你这个程序还没到达题目要求,建议再完善一下! myft@code 发表于 2014-12-17 01:22
结果要整形(将double改为int),还差一个case '%',else后要用{}括起来(因为那是语句块!);你这个程序还没到 ...
#include<stdio.h>
#include<stdlib.h>
int main()
{
int d1,d2;
long sum;
char op;
printf("Please input data1 op data2:");
scanf("%d %c %d",&d1,&op,&d2);
switch(op)
{
case'+':
sum=d1+d2;
printf("\n%d+%d=%d",d1,d2,sum);break;
case'-':printf("\n%d-%d=%d",d1,d2,d1-d2);break;
case'*':
sum=d1*d2;
printf("\n%d*%d=%ld",d1,d2,sum);break;
case'/':
if(d2==0)
printf("\nError! chu shu wei 0.\n");
else
printf("\n%d/%d=%ld",d1,d2,d1/d2);break;
case'%':
if(d2==0)
printf("\nError! chu shu wei 0.\n");
else
printf("\n%d%%%d=%d",d1,d2,d1%d2);break;
default:
printf("\nError");
}
system("pause");
return 0;
}
失分,未实现:当运算结果超出int型范围时计算正确
这是伙修改之后的提示,不知怎么修改了! 你用的编译器 long 和 int 该是一样长的吧, 你用的编译器long 和 int 应该是分配相同的字节,换成long long 试试。 myft@code 发表于 2014-12-17 23:28
你用的编译器long 和 int 应该是分配相同的字节,换成long long 试试。
还是不行 定义得时候要这样写:long long int sum;不能写成long long;如果还不行,那我也不知道了。 myft@code 发表于 2014-12-18 22:42
定义得时候要这样写:long long int sum;不能写成long long;如果还不行,那我也不知道了。
谢谢,那我试一下 #include<stdio.h>
int main()
{
int a,b;
char ch;
puts("\t\tplease input data1 op data2");
while(scanf("%d %c %d",&a,&ch,&b)!=EOF) //ctrl + z 结束
{
switch(ch)
{
case 'x':
case 'X':
case '*':
printf("A X B =%.0f\n",(double)a*b*1.0);break;
case '/':
if(b==0)printf("\nError!chu shu bu wei 0\n");
printf("A / B =%.2f\n",(double)a/b*1.0);break;
case '+':
printf("A + B =%.0f\n",(double)(a+b)*1.0);break;
case '%':
printf("A %% B = %d\n",a%b);break;
case '-':
printf("A - B = %d\n",a-b);
}
}
}
学习了
页:
[1]