C语言加法算数的问题
我写了一个程序:#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
请问:这是为什么? 第一个来说
因为在第一个里面你先是c=a+b,这里我们并没有输入a,b的值,意味着a,b就是任意数。得到的C那也就是不正确的数所以会出错
第二个里面
在第二个里面是先给a,b赋值,在来给c赋值,所以C有明确的值 不是说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} elseif(条件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程序的结构了。 谢谢大家!我已经知道了!:big:loveliness:
页:
[1]