社区讨论
为什么测试对了,提交全WA?求个大佬看看!!!
P1957口算练习题参与者 5已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo7fbm9t
- 此快照首次捕获于
- 2023/10/27 00:53 2 年前
- 此快照最后确认于
- 2023/10/27 00:53 2 年前
C
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
int n,a,b;
char str[100];
char s[100];
char m;
scanf("%d",&n);
getchar();//吸收数字后的回车
while (n--)
{
memset(s,0,sizeof(s));//重置为0;
gets(str);//读入
if (isalpha(str[0]))//通过第一个字符判断是那种情况
{
m=str[0];//存入符号
switch (str[0])
{
case ('a'):
sscanf(str,"%*s%d%d",&a,&b);
sprintf(s,"%d+%d=%d",a,b,a+b);
puts(s);
printf("%d",strlen(s));
break;
case ('b'):
sscanf(str,"%*s%d%d",&a,&b);
sprintf(s,"%d-%d=%d",a,b,a-b);
puts(s);
printf("%d",strlen(s));
break;
case ('c'):
sscanf(str,"%*s%d%d",&a,&b);
sprintf(s,"%d*%d=%d",a,b,a*b);
puts(s);
printf("%d",strlen(s));
break;
}
}
else
{
switch (m)//上一次存入的符号
{
case ('a'):
sscanf(str,"%d%d",&a,&b);
sprintf(s,"%d+%d=%d",a,b,a+b);
puts(s);
printf("%d",strlen(s));
break;
case ('b'):
sscanf(str,"%d%d",&a,&b);
sprintf(s,"%d-%d=%d",a,b,a-b);
puts(s);
printf("%d",strlen(s));
break;
case ('c'):
sscanf(str,"%d%d",&a,&b);
sprintf(s,"%d*%d=%d",a,b,a*b);
puts(s);
printf("%d",strlen(s));
break;
}
}
}
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...