if并与==进行比较
if and comparing with ==
我都是编程新手,所以请帮帮我。结果变量似乎没有正确的值。我知道最好使用cin
和cout
,但我的导师要求我使用printf
和scanf
。
如果我将代码更改为printf("%d",结果(;我会得到:运行时检查失败#3-变量"result"在未初始化的情况下被使用。如果我将代码更改为scanf("%c",&c(;%c将从第一次扫描中获得空白((!!!所以我必须这样写scanf("%c%*c",&c(;或者通过这种方式scanf("%c",&c(;。与%d或%f相比,%c似乎没有跳过空白。
#include<stdio.h>
#include<conio.h>
int main ()
{
int n1, n2;
int result;
char c;
printf("Lotfan addad aval ra vared konidn");
scanf("%d", &n1);
printf("Lotfan addad Dovom ra vared konidn");
scanf("%d", &n2);
printf("Please choose an operatorn");
scanf("%c%*c", &c);
if (c=='+')
{
result=n1+n2;
}
else if (c=='-')
{
result=n1-n2;
}
else if (c=='*')
{
result=n1*n2;
}
else if (c=='/')
{
result=n1/n2;
}
//else
//{
//printf("error");
//}
//printf("%d%c%d=%d" ,n1,c,n2,&result);
printf("%d", &result);
getch();
return 0;
}
您并不总是初始化result
。如果您的if
条件中没有一个评估为true,那么它将被取消初始化。你需要确保你总是初始化它。
更重要的是,你不能将&result
传递给printf
,因为这将打印result
的地址,我相信这不是你想要的。改为传递result
。
printf("%d", result);
当你写道:
scanf("%c%*c", &c);
我想你的意思是:
scanf("%c", &c);
您有:
scanf("%c%*c", &c);
更改为:
scanf("%c", &c);
你有:
printf("%d", &result);
更改为:
printf("%d", result);
result
值在未正确初始化时实际上包含垃圾值。因此,垃圾进垃圾出!
这个->printf("%d", &result);
应该是printf("%d",result);
相关文章:
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 比较if语句中的数组值和int值
- 在这里,当我们比较 if(vc[i]==vc1[i]) 时,它是向量数组. 实际上比较的值是多少,
- 将 if 语句中的字符与 or 进行比较
- 如何在 c++ 中将 s1 和 s2 与 no if 语句进行比较
- 是否可以在C++中使用三元运算符在 if 语句中选择比较运算符?
- 如何比较if语句中的字符串?
- 将子字符串与字符串数组进行比较的 IF 条件会在C++中产生错误
- 在 constexpr-if 条件下比较 constexpr 函数参数会导致错误
- 为什么使用 and 运算符比较 if 语句中的 2 个对象会抛出错误,而使用 2 if 语句则不会
- 与 IF 语句C++的字符串比较?
- 在 IF 语句中比较 int 时出现奇怪的行为
- 为什么我不能比较 IF 语句中的三个不同值?.CPP
- 如何修复"运算符不匹配=="比较if语句中的字符串时
- 比较If语句中的数据类型
- 字符比较 if 语句无法正常工作
- C++:比较 if 语句中的十进制值
- 简单的c++比较if语句
- 比较if(…)和?:哪个更好
- 比较if语句中结构体内部的值