注册 登录
编程论坛 C语言论坛

新人求助(不简单的scanf)

qpmhhh 发布于 2020-10-11 09:39, 1097 次点击
#include<stdio.h>
int main()
{
    short a=0,i=1;
    int total=6;
    printf("The number of people:\n");
    scanf("%d",&a);    //在这一步后total变成了0
    for(;i<a;i++)
    {
        total=total*5+1;
    }
    printf("Total is %d\n",total);
    return 0;
}
请大佬解答,谢谢大佬

[此贴子已经被作者于2020-10-11 09:49编辑过]

2 回复
#2
rjsp2020-10-11 10:16
scanf("%d",&a);

这就是传说中的牛头不对马嘴
%d对应的是int对象的地址,你给的是short对象的地址
short对象的地址对应的是%hd,你给的是%d
#3
qpmhhh2020-10-11 11:25
回复 2楼 rjsp
受教了
谢谢
1