这是C Primer Plus 第十二章 12.4的编程问题?(语言-c语言)

#include <stdio.h>
int units = 0;
void critic(void);
int main()
{
extern int units;

printf("How many pounds to a firkin of butter ? \n");
scanf_s("%d",&units);
while (units != 56)
    critic();
printf("You must have looked it up!\n");
return 0;

}
void critic(void)
{
printf("No Luck, my friend.Try again!\n");
scanf_s(" %d ", &units);
}

我编程后形成的答案是这个:请问如何解决这个问题?

img

函数里scanf的%d左右多了空格,输入的时候要输入空格才是正确格式,把这两头的空格删了就行了

img

如果对你有帮助,还请点个采纳,万分感谢!

代码修改后如下

#include <stdio.h>
int units = 0;
void critic(void);
int main()
{
    extern int units;

    printf("How many pounds to a firkin of butter ? \n");
    scanf_s("%d", &units, 1);
    while (units != 56)
        critic();
    printf("You must have looked it up!\n");
    return 0;
}
void critic(void)
{
    printf("No Luck, my friend.Try again!\n");
    scanf_s("%d", &units, 1);//删去了%d两侧的空格
}

有帮助望采纳~

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632