刚开始学 请问一下这个哪里出了问题

img


翻书翻了半天没找着这是怎么出问题了 求解答😭
🥸☹️🥺😩😢😣😋😡😙

scanf_s("%s", ccc, 47); 错误提示说得明白第二个整形参数就是数组的长度。

第7行:scanf_s("%s", name); 修改为:scanf_s("%s", name, 40);

【以下回答由 GPT 生成】

根据您提供的代码,我发现了以下几个问题:

  1. 在第17行的printf函数中,您使用了错误的格式控制符。在格式控制符中,您应该使用%f来表示浮点数,而不是%%。而且,如果您想要控制保留小数点后的位数,应该将.2放在%f之前。

修复方法:

printf("The %s family just may be %.2f dollars richer!\n", name, cash);
  1. 在使用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;
}

希望这可以解决您的问题!如有其他问题,请随时提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^