scanf_s("%s", ccc, 47); 错误提示说得明白第二个整形参数就是数组的长度。
第7行:scanf_s("%s", name); 修改为:scanf_s("%s", name, 40);
【以下回答由 GPT 生成】
根据您提供的代码,我发现了以下几个问题:
%f
来表示浮点数,而不是%%
。而且,如果您想要控制保留小数点后的位数,应该将.2
放在%f
之前。修复方法:
printf("The %s family just may be %.2f dollars richer!\n", name, cash);
scanf
函数获取name和cash的输入时,您没有为字符数组name
和float变量cash
指定正确的格式控制符。为了避免缓冲区溢出,应该在%s
和%f
之间添加一个限定符,如%39s
来限制输入的长度为39个字符。修复方法:
scanf("%39s", name);
scanf("%f", &cash);
综上所述,以下是您的修复后的代码:
#include <stdio.h>
int main(void) {
char name[40];
float cash;
printf("What's your name?\n");
scanf("%39s", name);
printf("OK Mr, %s, how much money do you have?\n", name);
scanf("%f", &cash);
printf("The %s family just may be %.2f dollars richer!\n", name, cash);
return 0;
}
希望这可以解决您的问题!如有其他问题,请随时提问。
【相关推荐】