鱼C论坛

 找回密码
 立即注册
查看: 1744|回复: 3

[已解决]C语言加法算数的问题

[复制链接]
发表于 2015-10-4 20:18:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我写了一个程序:
#include "stdio.h"
void main()
{
int a,b,c;
c=a+b;
scanf("%d",&a);
scanf("%d",&b);
printf("%d\n",c);
}
运行结果如下:
d:\1.jpg
但当我改成这样时却正常了?!
#include "stdio.h"
void main()
{
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
c=a+b;
printf("%d\n",c);
}
d:\2.jpg
请问:这是为什么?
最佳答案
2015-10-4 21:04:12
第一个来说
因为在第一个里面你先是c=a+b,这里我们并没有输入a,b的值,意味着a,b就是任意数。得到的C那也就是不正确的数所以会出错

第二个里面
在第二个里面是先给a,b赋值,在来给c赋值,所以C有明确的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-10-4 21:04:12 | 显示全部楼层    本楼为最佳答案   
第一个来说
因为在第一个里面你先是c=a+b,这里我们并没有输入a,b的值,意味着a,b就是任意数。得到的C那也就是不正确的数所以会出错

第二个里面
在第二个里面是先给a,b赋值,在来给c赋值,所以C有明确的值
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-10-4 22:18:38 | 显示全部楼层
不是说C程序有三种结构么    1、顺序结构   语句的执行顺序是至上而下的依次执行.    2、循环结构      while(条件 1)   {循环体2}    for(初值A;范围B;步长C)    do {循环体1} while(条件2);    3、选择即分枝和跳转语句 (1)if (判断条件)  {分枝体}; (2)if(判断条件)  {分枝1} else {分枝2}    (3)if(条件1) {分枝1}   else  if(条件2)  {分枝2}  else if (条件3)  {分枝3}  .....else if(条件n) {分枝n }  else {分枝n + 1}      switch开关语句:  
switch (choice)
   {
    case 1:
    case 2:
    case 3:
    case 4:
    default :
   }该语句也是多分枝选择语句,到底执行哪一块,取决于开关设置,也就是表到时的值与常量表达式相匹配的那一路,如果相匹配,执行其后的块,接着执行第2分支,第3分支.....的块,直到遇到break语句,如果不匹配,查找下一个分支是否匹配。这个语句在应用时要特别注意开关条件的合理设置以及break语句的合理应用.最后 是goto 语句goto 和一个标签名称,  标签的命名遵循与命名变量相同的约定 ,  
goto part2;
part2: printf("Refined analysis: \n");
上述就是所有的c程序的结构了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-10-6 18:15:55 | 显示全部楼层
谢谢大家!我已经知道了!:big:loveliness:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 11:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表