C语言指错

我编好了一个C语言程序,但是我不知道哪里有错误.希望大家帮我看看,就是下面图片里的.
就是还希望大家可以帮我把改法也说一下,再次谢谢了.

C语言要求变量先定义后使用,你的程序里essai变量没有定义所以出错.
还有IF语句中的条件essai=entierMystere是合法的,但是这个条件是个赋值语句而不是关系运算,判断两变量是否相等用== 而不是= .但是用=编译器不会报错IF会以essai的值来决定执行方向

复制就可以用

#include <stdio.h>
#include <windows.h>
int main (){
int entierMystere=1789,essai;
printf ("Enter votre entier entre 1 et 9999\n");
scanf ("%d",&essai);

if (essai==entierMystere)printf ("Bravo vous avez trouz l' entier stere!\n");
else if (essai<entierMystere)
printf ("Essayez un entier plus grand la prochaine fois\n");
else printf ("Essayez un entier plus petit la prochaine fois\n");
system("pause");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-02-08
#include <stdio.h>
int main (){
int entierMystere=1789,essai;
/*
若变量essai为实数
float essai;
*/
printf ("Enter votre entier entre 1 et 9999\n");
scanf ("%d",&essai);
/*
若变量essai为实数
scanf ("%f",&essai)
*/
if (essai==entierMystere)
printf ("Bravo vous avez trouz l' entier stere!\n");
else if (essai<entierMystere)
printf ("Essayez un entier plus grand la prochaine fois\n");
else printf ("Essayez un entier plus petit la prochaine fois\n");
while (1);//用于查看屏幕结果,可去掉
return 0;
}

我改了以下几点:
1.你的程序里没有定义变量entierMystere和essai,没有类型。
2.scanf语句格式不对,应是scanf ("%d",&a);
%d是输入整型,%ld是长整型,%f是单精浮点,%lf是双精浮点,%c是单字符,%s是字符串。
3.判断语句中,应使用==才表示是否相等,=只有赋值功能,这样一来,不管entierMystere和essai值取什么(除了0),最后的结果都是把entierMystere值赋给essai,永远为真。
4.既然main没有声明类型,即是int型(main函数在vc++和dev-c++里必须为int型),最好有返回值reutrn 0;
5.这算不上错误,只是不需要这样写,第二个判断语句无需<=,<即可,因为你上面已经判断过==,else中不需要有=(不可能=)。
6.这也不是错误。打印提示语是最好换行(\n),这样程序比较完善。
7.这还不是错误啦,括号太多了,逻辑不太清晰,我改的应该比较简洁。关于if-else,有一条规律,在没有{}情况下,else和与它最近的if语句配对(当然一个if不可能配多个else)。

(原谅我嗦这么多)
第2个回答  2010-02-08
scanf("%d",&essai);
还有如果你想判断essai和entierMystere是否相等,应该用essai==entierMystere,
entierMystere的类型没写
第3个回答  2010-02-08
1.变量未定义,entierMystere和essai都未定义
2.应该是essai==entierMystere
3.第二个printf结束少分号
4.main函数结束应有return 0;否则写void main
第4个回答  2010-02-08
1、首先不知道你是否已经声明essai,entierMystere 为某类型
( 例:int entierMystere,essai; )的变量。
2、if(essai=entierMystere)应写成if(essai==entierMystere)
前者是赋值语句,后者才是比较语句。
3、输出字符串printf应写成类似格式,printf("%s","out data!");
4、if(essai=entierMystere)下面一句,printf("....")后面少分号“;”
第5个回答  2010-02-08
entierMystere=1789;
改为
int essai,entierMystere=1789;

if (essai=entierMystere)
改为
if (essai==entierMystere)
相似回答
大家正在搜