正确输入输出字符,字母与字符在scanf中的区别

问题遇到的现象和发生背景

请编写程序从键盘读入数据,并按要求输出

输入格式

  共三行。
  第一行:输入两个整数,中间用一个逗号隔开;
  第二行:输入两个浮点数,中间用空格隔开;
  第三行:输入两个字母,每个字母前面加一个空格,中间加一个逗号。

输出格式

  按照输入的原样输入数据,其中的浮点数输出时保留小数点后1位。

用代码块功能插入代码,请勿粘贴截图
#include
main()
{
int a, b, f;
float c, d;
int i = 0;
char s[];
scanf("%d%d", &a, &b);
scanf("%f%f", &c, &d);
while ((f = getchar()) != EOF)
{
if (f != ' ' && ',' && '\n' && '.')
{
s[i] = f;
++i;
}
}
printf("%d,%d\n", a, b);
printf("%.1f %.1f\n", c, d);
printf(" %c, %c", s[0], s[1]);
}

运行结果及报错内容
s未定义内存大小

我想要达到的结果
正确解决题目

char s[]不行,要指定数组大小

不知道你这个问题是否已经解决, 如果还没有解决的话:

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