C语言新手请教

来源:百度知道 编辑:UC知道 时间:2024/05/26 03:50:49
我想写一个简单的四则运算的程序,为什么最后程序运行时出现内存不能读取?
程序如下。请高手指教。谢谢

#include<stdio.h>
#include<stdlib.h>
int main()
{
int a,b;
char p;
while (true)
{
printf("请输入算式:\n");
scanf("%d%c%d,&c,&p,&b");
switch (p)
{case'+':printf("%d%c%d=%d",a,p,b,a+b);break;
case'-':printf("%d%c%d=%d",a,p,b,a-b);break;
case'*':printf("%d%c%d=%d",a,p,b,a*b);break;
case'/':printf("%d%c%d=%d",a,p,b,a/b);break;
}
system("pause") ;
}
}

scanf("%d%c%d" ,&a,&p,&b); <----正确写法。 !!注意引号!!

看看你是怎么写的。

兄弟 这可是 老低级的失误了! 要细心一点!

给你改了。很不错的想法
#include <stdio.h>
#include <stdlib.h>
void main()
{
int a,b;
char p;
while (true)
{
printf("请输入算式:\n");
scanf("%d%c%d",&a,&p,&b);
switch (p)
{case'+':printf("%d%c%d=%d",a,p,b,a+b);break;
case'-':printf("%d%c%d=%d",a,p,b,a-b);break;
case'*':printf("%d%c%d=%d",a,p,b,a*b);break;
case'/':printf("%d%c%d=%d",a,p,b,a/b);break;
}
system("pause") ;
}
}

switch的括号里面只能是INT类型的。(不是很确定)

问题在while上