寻找最大数序列

时间:2022-01-29 22:12:17

Q:找最大数序列
总时间限制: 1000ms 内存限制: 65536kB
描述
输入 n 行,每行不超过 100 个无符号整数,无符号数不超过 4 位。请输出最大整
数以及最大整数所在的行号(行号从 1 开始)。如果该数据在多个行中出现,则按
从小到大输出相应行号,行号之间以一个逗号分开。
输入
一行输入一个正整数 n(n <= 30)。
之后的 n 行,每行包含不超过 100 个无符号整数,整数之间以一个逗号分开。
输出
第一行:最大整数;
第二行:最大整数所在的行编号,逗号间隔。
样例输入
6
1,3,5,23,6,8,14
20,22,13,4,16
23,12,17,22
2,6,10,9,3,6
22,21,20,8,10
22,1,23,6,8,19,23
样例输出
23
1,3,6

 

S:

#include <stdio.h>
int main()
{
	int n,i,x;
	int a[31];
	int mark=0;
	int max=-1;
	int first=1;
	char ch;
	scanf("%d",&n);
	getchar();
	for(i=0;i<n;i++)
	{
		scanf("%d%c",&x,&ch);
		while(ch==',')
		{
			if(x>max)
			{
				max=x;
				mark=0;
				a[mark]=i;
			}
			else if(x==max&&i!=a[mark])
			{
					mark++;
					a[mark]=i;
			}
			ch=' ';
			scanf("%d%c",&x,&ch);
		}
		if(x>max)
		{
			max=x;
			mark=0;
			a[mark]=i;
		}
		else if(x==max&&i!=a[mark])
		{
			mark++;
			a[mark]=i;
		}
	}
	printf("%d\n",max);
	for(i=0;i<=mark;i++)
	{
		if(first)
		{
			printf("%d",a[i]+1);
			first=0;
		}
		else
		{
			printf(",%d",a[i]+1);
		}
	}
	printf("\n");
	return 0;
}