c/c++语言开发共享如果声明不工作立即结束程序

我正在制作一个天气男人代码但是当我要求温度时它会结束程序。 这是代码。

#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

      (0)
      上一篇 2020年12月11日
      下一篇 2020年12月11日

      精彩推荐