我正在制作一个天气男人代码但是当我要求温度时它会结束程序。 这是代码。
#include int main(void) { int a; int b; int c; int d; printf("What Is Your Name?n"); scanf("%s",&b); printf("Hi %sn", &b); sleep(1); printf("Im Your Own Weather Mann"); sleep(1); printf("Isn't That Great!n"); sleep(1); printf("Please Type A Number Inn"); sleep(1); scanf("%d",&a); //checking out the number you wrote if(a3) { printf(":(n"); } if(a==3) { printf("Its Snowing!n"); printf("%cn",3); sleep(5); printf("Would you like to know the temprature?n"); scanf("%s", &c); } if(c=='yes') printf("20Fn"); return 0; }
我认为它弄乱了(c ==’是’)
我怎么能打印20 F?
[编辑]感谢您帮助我将新代码放在下面,随时可以随意使用它,但请给予我信任。
#include #include #include int main(void) { int a,b; char c[5]; char d[30]; printf("What Is Your Name?n"); scanf("%s",d); printf("Hi %sn", d); sleep(1); printf("Im Your Own Weather Mann"); sleep(1); printf("Isn't That Great!n"); sleep(1); printf("Please Type A Number Inn"); scanf("%d",&a); //checking out the number you wrote if(a3) { printf("Its A Cloudy Day"); printf(":(n"); } if(a==3) { printf("Its Snowing!n"); printf("%cn",3); sleep(5); printf("Would you like to know the temprature?n"); scanf("%s",c); } if(strcmp("yes", c) == 0) printf("20Fn"); return 0; }
问题在于您使用以下行将字符串读入int:
scanf("%s", &c);
试试这个, %d
显示输入是int类型。
scanf("%d", &c);
c
被定义为int
,但您将其视为char*
。
您还应该使用strcmp
而不是==
。 您无法将字符串与==
运算符进行比较。
将c
的定义更改为: char c[128]
或其他任意长度。 然后在执行scanf: scanf("%s", c);
时删除&
运算符scanf("%s", c);
最后,将if (c=='yes')
更改为if (strcmp("yes", c) == 0)
。
if(c=='yes') printf("20Fn");
你不能这样做'yes'
因为'yes'
是一个错误声明的字符常量 ,即使它是一个字符串文字,如"yes"
你也无法直接在c中比较字符串。 使用内置库函数或编写自己的函数进行字符串比较/
以上就是c/c++开发分享如果声明不工作立即结束程序相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/523130.html