C语言scanf不能输入多个吗?

这是个看成绩总分排序的程序,程序可以运行,但不知道为什么只能输入一次,经过我的排查,应该是scanf的原因,以下是源码,求大佬

#include<stdio.h>
int main()
{
	int n, b[100], t[100], v[5];
	char a[100];
	scanf_s("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf_s("%c%d%d%d%d%d%d", &a[i], &b[i], &v[0], &v[1], &v[2], &v[3], &v[4]);
		t[i] = v[1] + v[0] + v[2] + v[3] + v[4];

	}
	int j = 0;
	int k, m;
	for (; j < n - 1; j++)
	{

		for (k = j + 1; k < n; k++)
		{
			if (t[k] > t[j])
			{
				m = t[k];
				t[k] = t[j];
				t[j] = m;
			}
		}
	}
	for (j = 0; j < n; j++)
	{
		printf("%c %d %d", a[j], b[j], t[j]);
	}
}

 

输入次数由n来决定,一行多个数字之间要有空格分隔哦

scanf_s("%c%d%d%d%d%d%d", &a[i], &b[i], &v[0], &v[1], &v[2], &v[3], &v[4]);

这行代码前面加一条语句

fflush(stdin);

scanf_s("%c", &a[i]);

fflush(stdin);

scanf_s("%d%d%d%d%d%d", &b[i], &v[0], &v[1], &v[2], &v[3], &v[4]);

scanf可以输入多个

你第一次输入的值是多少,这个n会影响你后面循环的执行

scanf_s严格检查字符和字符串的长度

scanf_s("%c%d%d%d%d%d%d", &a[i], &b[i], &v[0], &v[1], &v[2], &v[3], &v[4]);

改为:scanf_s("%c%d%d%d%d%d%d", &a[i], 1,&b[i], &v[0], &v[1], &v[2], &v[3], &v[4]);在

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps: 问答会员【8折】购 ,仅需→¥23.2,即可享受5次/月 有问必答服务,了解详情>>>https://t.csdnimg.cn/RW5m