输入多组数字,再进行输出其中的最大数字

本文解析了两个方法解决给定数据中每行最大值的问题,包括不使用数组的逐行比较和使用数组存储输出。适合初学者理解输入输出控制和数据结构应用。

多输入输出练习1
简单输入输出
空间限制:16MB时间限制:1s总提交数:2160通过率:39.17%题目来源: 站点添加
给定很多行数据,要求输出每一行的最大值.

程序有多行输入,每一行以0结束.

有多行输出,对应输入的行数.

23 -456 33 78 0
43 23 987 66 -137 324 0
544 27 7 9 102 234 -44 -732 723 0
78
987
723

有两种做法,一种是不使用数组,另一种是使用数组的方法,两种方法都可以通过。
第一种是一直在输入,同时,比max小的数字就会销毁
第二种是上面的那个原理,不过是再最后的输出是一直输入的全部结果,使用数组进行对数字
存放。

题目的编程来自于广东技术师范大学的在线判题系统,简称为OJ系统,
希望下载的浏览器是谷歌浏览器,这样可以更好体验我们学校的编程网站,
题目来源 广东技术师范大学在线判题网站http://www.gpnuacm.com/#/home

第一种方法

#include <stdio.h>
int main()
{	int max,n;
	n=0;max=0;
	while(scanf("%d",&n)!=EOF)//这里建议使用EOF,如果使用了while(1),就会超时不能通过
	{	max=n;
		while(scanf("%d",&n))
		{
		if(n==0)		
			break;		
		else		
			if(max<n)			
				max=n;				
	}
		printf("%d\n",max);
	}
	return 0;
}

第二种

#include <stdio.h>
int main()
{	int i,j,a[66],n,max=0;
	i=0;j=0;
	while(scanf("%d",&n)!=EOF)
	{		i=0; //重置很重要 
			if(n!=0)
			{		
					if (max<n)
					max=n;
			
					else										
					continue;//接着第一种方法进行循环
					//当出现零就进行储存这个答案 
								
			}	
	
			else
			{
				//把每个输出存储进一个数组里 
				a[i]=max;
				i++;
				max=0;
			}
			
			
			for(j=0;j<i;j++)
			printf("%d\n",a[j]);								
	}
	return 0;
}
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值