C语言,输入一整数,输出该整数的2倍。简单的小程序,为什么运行后得出的计算结果却总是3112呢。

main()
{
int a,c;
c=2*a;
scanf("%d",a);
printf("%d",c);
getch();
}
我用的是 win tc,运行后,我在运行框里输入1,2,3,4,5.。。。200, 3000,随便输入一个整数。按回车键后得到的输出结果却一直是 3112. 好奇怪啊。
我把
scanf("%d",a);
改成
scanf("%d",&a);
后,运行结果变成,无论输入什么整数,结果都是 -7162

第1个回答  2012-09-06

scanf("%d",a);


c=2*a;

这句换个位置就好了.
对还有scanf的变量要取址符哦.追问

真的好了啊。谢谢。
这是什么缘故呢

追答

因为你在使用A变量时,A还没有附进你要输入的值,你要先做scanf("%d",&a);这之后a才有值,
起先你做c=2*a;时A变量的值是随机的.

本回答被提问者采纳
第2个回答  2012-09-06
因为你没输入值前变量a 是垃圾值,先输入再乘就OK了哈
main()
{
int a,c;
scanf("%d",&a);

c=2*a;
printf("%d",c);
getch();
}追问

是不是c语言里面,都必须这样子的啊。如果需要调用还未从键盘输入的整数,那么必须得放在scanf这个函数后面。

其它编程语言有这个规定吗。

第3个回答  2012-09-06
#include<stdio.h>

main()
{
int a,c;
c=2*a;
scanf("%d",&a);
printf("%d",c);
getch();
}
试试这个,取值的时候少个&符号。追问

额,我忘记这个符号了。但是加了后,输出结果一直都是 -7162了。
我按照楼上的,把顺序调一下。就好了。谢谢你。

第4个回答  2012-09-06
你应该把c=2*a放在scanf()和printf()之间,再试一下
第5个回答  2012-09-06
#include<stdio.h>
#include<conio.h>
void main()
{
int a,c;

scanf("%d",&a);
c=2*a;
printf("%d",c);
getch();
}
getch();所在头文件是conio.h。而不是stdio.h。追问

#include
#include

这两个头文件,都是默认就存在于开头的。我也不是太懂。不过还是谢谢你。

...简单的小程序,为什么运行后得出的计算结果却总是3112呢。
c=2*a;这句换个位置就好了.对还有scanf的变量要取址符哦.

计算机二级c语言每次程序题都做对了运行出来了可每次都是30多分怎么回 ...
第一种情况,你的程序不满足规定的时间运行要求或者内存要求。小程序比较少见。第二种情况,你的程序不能满足各种情况,对于特殊用例不能得到正确答案。这种情况常见。例如要设计一个除法的程序,你定义的都是int类型,那么你做整数相除结果也是整数的肯定没问题,但遇到小数了就不满足。

用C语言编写一个程序,输入一个整数,输出0~9各数字在该整数中出现的次数...
printf("请输入一个整数:");scanf("%d",&num);itoa(num,ch,10); \/\/将数字转化为字符串 for(ch1 = ch;ch1<ch+strlen(ch);ch1++){ num1 = *ch1;switch(num1){ case '0': a[0]++; break;case '1': a[1]++; break;case '2': a[2]++; break;case '3': a[3]++; br...

怎么用c语言编写一个小程序?
1、首先打开DEV C++软件,点击“新建源代码”,在编辑页面输入以下代码。2、因为题目要求我们先输入一个整数,所以在定义变量时,就应该将其定义为整数型,注意,在输入,输出函数中,整数型对应的是“%d”。3、接下来就要对输入的整数进行判断,在C语言中,if是判断语句,所以用它来对整数进行判断。if...

c语言小程序例题, 大师看看。怎么办?
1.4 华氏转摄氏:输入华氏温度,计算并输出对应的摄氏温度(保留两位小数)。1.5 大写转小写:输入一个大写英文字母,输出相应的小写字母。实验二 分支结构 2.1 显示成绩:输入学生的数学成绩,若低于60输出“Fail”,否则输出“Pass”。2.2 找最小值:输入四个整数,输出其中的最小值。2.3 求...

我编的C语言小程序为什么不显示结果呢?
while(1);因为这句总会是真的。而且你在后面有个分号。所以空语句。不会做任何动作。也就是死循环在这里了。所以只会执行while前面的语句 所有非负整数逻辑值都是1,是真 1非0.所以是真 因此while一直执行。不懂的话可以hi我

c语言小程序,求结果和解答。
我的编译器显示输出的是 0,如果将 printf("%d\\n",(float)(a*b)\/2);中的(float) 去掉 显示 输出 18 如果将 %d 换成 %f 输出的是 18.000000

用C语言编一个简单的计算器小程序
if((op1\/2==0)&&(op2\/2==1)) x2=(*func[op2])(x2,x3);else { x1=(*func[op1])(x1,x2);x2=x3;op1=op2;} op2=getid();} return (*func[op1])(x1,x2);} void main(void) { int value;printf("Please input an expression:\\n");getach();while(curch!='=') ...

我写了一个c语言小程序,功能是输入一个百分制成绩,输出对应的等级。
scanf("%d\\n",&x);这句把 \\n去掉,就是改成scanf("%d",&x);还有就是return 0; 后面要加}

C语言,编写一个程序从键盘上输入两个整数,并求出两个数的平均值在屏幕...
C语言编写程序的方法:visual c++6.0 报错比较准确,但比较难用。是微软推出的一款编译器,是一个功能强大的可视化软件开发工具。Turbo C 2.0 是dos环境下的,比较好用,但不支持复制,粘贴等功能,比较不好用,要记住常用的几个快捷键。win-tc 窗口下的tc,比较好用,界面简洁,美观。适合编一些...

相似回答