C语言编程出错问题

#include<stdio.h>
#include<conio.h>
main()
{
float x,y,jg;
char ch,a;

printf("请输入计算公式\n");

scanf("%f%c%f,&x,&ch,&y");

do{

switch(ch)
{
case '+':jg=x+y; break;
case '-':jg=x-y; break;
case '*':jg=x*y; break;
case '/':jg=x/y; break;
default:printf("\n你输入的公式不符合要求!");
}

if(ch=='='||ch='-'||ch=='*'||ch=='/')
{
printf("\n%f%c%f=%f\n",x,ch,y,jg");
}

printf("\n继续输入请按回车键,结束程序请按空格键");
a=getchar();

}
while(a='');
}

#include<stdio.h> //第二个头文件是可以不要的,这里没有用到
int main()
{
float x,y,jg;
char ch;
char a;
printf("请输入计算公式\n");

scanf("%f%c%f",&x,&ch,&y); //修改“的位置

do{
switch(ch)
{
case '+':jg=x+y; break;
case '-':jg=x-y; break;
case '*':jg=x*y; break;
case '/':jg=x/y; break;
default:printf("\n你输入的公式不符合要求!");
}

if(ch=='='||ch=='-'||ch=='*'||ch=='/') //第二个等号写成了赋值,改掉就好了
printf("\n%f%c%f=%f\n",x,ch,y,jg);
printf("\n继续输入请按回车键,结束程序请按空格键");
a=getchar();
}while(a=' ');

return 0;
}

之后,这里有运行结果:
Process terminated with status 0 (0 minutes, 0 seconds)
0 errors, 0 warnings (0 minutes, 0 seconds)追问

修改的原因#include char ch,a; scanf("%f%c%f,&x,&ch,&y"); return 0;

追答

#include 这个文件没有被用到,如果不注释掉的话也不会有错误。

char ch,a; 这样写也很规范,,不好意思我只是习惯了。
scanf("%f%c%f,&x,&ch,&y"); 和输出语句一样" "中间应该是要输出在屏幕上的内容,不应该把地址包括进去
return 0; 句末返回,,我把main函数改成了int型,需要返回值,如果不写,这个程序应该也能跑,
while(a==‘ ’)抱歉刚刚编译通过这一句我没有改出来~~~~(>_<)~~~~
=这里表示赋值,就不能完成循环条件了,==表示判断是否相等,而且' ' 里面的空格绝对不可以漏掉。

追问

printf("\n继续输入请按回车键,结束程序请按空格键\n");
scanf("%c",&a);
}
while(a=' ');

你就没发现这是一个死循环吗? scanf("%c",&a); 或 a=getchar(); 都是无法执行输入

追答

我的电脑上编译通过…………⊙﹏⊙b汗

追问

我的编译组建都通过,但你可以运行一次试试

追答

谢谢采纳,确实运行是不对的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-07-14
b为0,如2/0绝对会错的,对吧
那就是scanf函数的问题了,这是个危险的函数,scanf("%d,%d",&a,&b);这样用会出错,换成

scanf(“%d”,&a),scanf(“%d”,&b);
哦,原来试这样子,n=a%b;赋值的问题,=优先级比%高,所以出问题追问

完全不知道你说什么

第2个回答  2014-07-14
b为0,如2/0绝对会错的,对吧
那就是scanf函数的问题了,这是个危险的函数,scanf("%d,%d",&a,&b);这样用会出错,换成

scanf(“%d”,&a),scanf(“%d”,&b);
哦,原来试这样子,n=a%b;赋值的问题,=优先级比%高,所以出问题
第3个回答  2014-07-14
你这里的问题比较多,我给你贴出修改后的代码,里面附带了注释,不懂再问。
#include <stdio.h>
#include <stdlib.h>
//#include <conio.h> //这个头文件可以不要

int main()
{
float x, y, jg;
char ch, a;

do{
printf("请输入计算公式\n");
scanf("%f%c%f", &x, &ch, &y); //你这里写法有问题
switch(ch) {
case '+':
jg=x+y;
break;
case '-':
jg=x-y;
break;
case '*':
jg=x*y;
break;
case '/':
jg=x/y;
break;
default:
printf("\n输入公式符合要求");
}
if(ch=='+'||ch=='-'||ch=='*'||ch=='/') { //第一个为+号,第二个少了=号
printf("\n%f%c%f=%f\n",x,ch,y,jg); //格式错误
}
printf("\n继续输入请按车键结束程序请按空格键\n");
a=getchar();
} while(a=='\n'); //少了= 号
return 0;
}
第4个回答  2014-07-14
#include<stdio.h>
#include<conio.h>
int main()
{
float x,y,jg;
char ch,a;
printf("ÇëÊäÈë¼ÆË㹫ʽ\n");
scanf("%f%c%f,&x,&ch,&y");
do{
switch(ch)
{
case '+':jg=x+y; break;
case '-':jg=x-y; break;
case '*':jg=x*y; break;
case '/':jg=x/y; break;
default:printf("\nÄãÊäÈëµÄ¹«Ê½²»·ûºÏÒªÇó£¡");
}
if(ch=='='||ch=='-'||ch=='*'||ch=='/')
{
printf("\n%f%c%f=%f\n",x,ch,y,jg);
}
printf("\n¼ÌÐøÊäÈëÇë°´»Ø³µ¼ü£¬½áÊø³ÌÐòÇë°´¿Õ¸ñ¼ü");
a=getchar();
}while(a!=' ');
return 0;
}

c语言程序 哪里出错了呢 始终运行不出结果
在C语言编程中,若程序始终无法输出结果,可能是因为输入数据的类型与程序调用的数据类型不一致。以scanf函数为例,当使用 scanf("%lf%lf%lf",&a,&b,&c);进行输入时,确实将输入的数字以float类型存储至内存中。然而,程序在读取这些内存时,可能期望以double类型进行解析。这种类型不匹配会导致解析出...

c语言问题:出现'unexpected end of file found”是怎么回事呀?_百度...
结论:在C语言编程中遇到'unexpected end of file found'的错误,通常是因为大括号({})的配对出现了问题。这个错误意味着编译器在预期文件结束的地方没有找到相应的关闭大括号,导致编译过程中栈中未消去的开括号。解决方法就是检查文件的最后,确保所有开启的大括号都有相应的关闭大括号。C语言以其简...

C语言编程最常见的15个错误
前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5.忘记加分号。分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句...

为什么c语言程序在运行时出现错误?
出现这个报错的原因是:代码输入过程中出现全角输入,将代码中括号、分号等用半角字符替换即可。根据题目给出的提示,请检查一下第51行代码,将51行代码中出现的全角符号替换成半角字符,或者输了重新输入就行。

c语言出现expectedidentifieror是什么意思
这个错误可能由多种原因引起:1. **拼写错误**:可能是变量名、函数名等拼写错误,或者大小写不正确(C语言是区分大小写的)。2. **缺少符号**:如在使用变量或函数之前未声明,或者在关键字(如`int`, `if`等)后直接跟了错误的符号或结构。3. **非法字符**:在标识符中混入了非法字符,如...

基础C语言编程时易犯错误有哪些
l 类型不匹配的问题。(例如:有float a=3.5,但输出的时候printf(“a=%d”,a);则屏幕上会显示出a=0.00000或者提示其它运行错误)。基本原则是:float对应%f, int对应%d, char对应%c。 l 个数不匹配。无论是哪个函数,都可以有n个参数,第一个永远是“”括起来的内容,...

对于C语言编程出了错,怎么能快速找出错误呢?
代码是否存在逻辑错误:1、变量使用前未被数值 实例:int main(){ int x=5,y,z;z=x*y;printf("%d",z);return 0;} 在此程序中变量y在使用之前未被赋值,所以结果输出z的值就会是系统随机分配一个值给y再加乘以x的值。2、把赋值赋值符号“=”与等于符号“==”相混淆 实例:有一下语句:...

为什么C语言宏定义总是编译出错?
解答:若在编程时遇到C语言宏定义出错问题,首先应确保编译器设置无误。解决这类问题的一个有效方法是,将代码粘贴到在线IDE,如ideone,进行编译与运行,从而获取详细的错误信息。这样能更直观地定位问题所在。为提升问题解决效率,我有两点建议:一是遇到编程相关疑问,可尝试在专业论坛上寻求帮助,如stack...

c语言哪里出错了
首先,编程错误有逻辑错误和语法错误,不同错误的查看方式不同。语法错误在在程序编译时编译器会报错,编译不能通过,此类错误如:变量使用时尚未定义,符号错误等等。可以根据编译器的提示查看错误。而逻辑错误主要是程序在逻辑上出现问题,此类错误编译能通过,但是程序运行起来未必会得到所期望得到的结果。...

这个c语言代码错哪里了?
但C语言中,“=”是赋值运算符,“==”是关系运算符。如:if (a==3) a=b; 前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。5、忘记加分号 分号是C语句中不可缺少的一部分,语句末尾必须有分号。a=1 b=2 编译时,编译程序在...

相似回答
大家正在搜