为什么我这段程序不管a是什么值b的值都是8啊!

来源:百度知道 编辑:UC知道 时间:2024/06/20 06:12:32
#include <stdio.h>
int main(void)
{
int a;
int b=0;
printf("enter a number:");
scanf("%i",a);
while(a!=0)
{
a=a/10;
b++;
}
printf("%i\n",b);
}

scanf("%i",&a);
scanf接收的第二个参数必须是一个地址,用&取a的地址就可以正确赋值了

是你看错了吧
你别说你把TC里面的0看成8了。。。。。。。。

用途:

程序检查输入的数字是多少位,并将位数输出。

错误及修正:

scanf("%i",&a); // 应该加上“&”

不可能的啊!
还有一个错误
scanf("%i",a)应该是scanf("%i",&a)

输入的那句话,应该是这样的:
scanf("%i",&a);

为什么编译器不报错?为什么运行后系统不出错?谁能解释下啊