这个C代码有什么错误?
这是我试图编译的代码这个C代码有什么错误?,c,output,C,Output,这是我试图编译的代码 #include <stdio.h> int main(void) { int n; printf("Enter the value for the nuber to be tested\n"); scanf("%d", &n); if(n <=10 && >= 1) printf("n is between 1 to 10\n"); return 0; } #包括 内部主(空)
#include <stdio.h>
int main(void)
{
int n;
printf("Enter the value for the nuber to be tested\n");
scanf("%d", &n);
if(n <=10 && >= 1)
printf("n is between 1 to 10\n");
return 0;
}
#包括
内部主(空)
{
int n;
printf(“输入要测试的数值\n”);
scanf(“%d”和“&n”);
如果(n=1)
printf(“n在1到10之间\n”);
返回0;
}
因此,当我编译它时,如果(n=1)修复您的
scanf(“%d”和&n)代码>
并检查n
是否在范围[1,10]内
你应该使用
if (n <= 10 && n >= 1) {
//Your Code
}
if(n=1){
//你的代码
}
修复您的
scanf(“%d”和&n)代码>
并检查n
是否在范围[1,10]内
你应该使用
if (n <= 10 && n >= 1) {
//Your Code
}
if(n=1){
//你的代码
}
为编译器启用所有警告和调试信息,即使用gcc-Wall-g
。学习使用调试器(gdb
在Linux上)。你犯了两个错误:
首先,您对scanf
的调用是错误的
scanf("%d, &n");
这是双重错误,GCC会警告你的
- 首先也是最重要的一点,对于格式字符串中的
%d
,scanf
需要一个整数参数地址,如scanf(“%d”,&n)代码>并且您有一些(您的程序经常会崩溃)
- 然后,
scanf
可能会失败。检查其结果(成功扫描的项目数):
if(scanf(“%d”,&n)=1=1&&n=1
测试为true,可以给出小于10的1(将true
布尔值转换为整数);错误的测试可能被解析为if((n>=1)为编译器启用所有警告和调试信息,即使用gcc-Wall-g
。学习使用调试器(gdb
在Linux上)。您犯了两个错误:
- 首先,您对
scanf
的调用是错误的
scanf("%d, &n");
这是双重错误,GCC会警告你的
- 首先也是最重要的一点,对于格式字符串中的
%d
,scanf
需要一个整数参数的地址,如scanf(“%d”,&n);
,并且您有一些(您的程序经常会崩溃)
- 然后,
scanf
可能会失败。请检查其结果(成功扫描的项目数):
if(scanf(“%d”,&n)=1=1&&n=1
测试为真,可能会给出1(将true
布尔值转换为整数),小于10;您不正确的测试可能被解析为if((n>=1)我按照您的建议更改了代码,现在它显示了if(n=1)的错误你输入了一个不在答案中的错误。请仔细阅读答案!@Basile Starynkevitch这意味着什么我不明白你能为我指出它吗?如果(n=1)正确地写了if(n=1)
,但你评论了if(n=1)
这不是P0W所写的。在抱怨之前,请仔细阅读答案。哈哈哈对不起,我是一个新手,我想我也需要一个眼睛检查。谢谢我按照你的建议更改了我的代码,现在它显示了if错误(n=1)你输入了一个不在答案中的错误。请仔细阅读答案!@Basile Starynkevitch这意味着什么我不明白你能为我指出它吗?如果(n=1)正确地写了if(n=1)
,但你评论了if(n=1)
这不是P0W所写的。在抱怨之前,请仔细阅读答案。哈哈哈,对不起,我是一个新手,我想我也需要一个眼睛检查一下。谢谢。我可以看到你写这篇文章时是新手,所以我会继续写,只在这里发表评论;请不要更新你问题中的代码以反映发布的内容答案中的d(特别是问题解决后)。这会让答案看起来很傻,如果有人有类似的问题,并且在这个问题上遇到了问题,他们就不能再使用这个来帮助他们了。我可以看到你写这篇文章时是新手,所以我会继续写,只在这里发表评论;请不要更新问题中的代码以反映答案中发布的内容(特别是如果问题解决了的话)。这会让答案看起来很傻,如果有人有类似的问题,并且在这个问题上绊倒了,他们就不能用这个来帮助自己了。