/*=====================================
找最大数序列
总时间限制: 1000ms 内存限制: 65536kB
描述
输入n行(n 不大于 30),每行不超过100个无符号整数,无符号数不超过4位。请输出最大整数以及最大整数所在的行号(行号从1开始单调递增)。如果该数据在多个行中出现,则按从小到大输出相应行号,行号之间以逗号间隔。
输入
n和之后的n行数据
输出
第一行:最大整数;
第二行:最大整数所在的行编号,逗号间隔。
样例输入
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 解析:
这个题目主要需要解决输入和输出的问题。
输入:
那n行数据不需要用数组来存储。输入时每次输入一个数和一个字符类型的逗号。
判定输入的字符是否是逗号来决定是否该结束这一行的输入。
但是要注意这样一来,可能每一行的最后一次 输入需要特别处理。 记录最大值所在的行要用一维数组。
但是在记录最大值所在行时必须注意:
新发现的最大值与原最大值相等时,要检查上一次存储的最大值的行与本次需
要存储的最大值的行是否在同一行。 假如真在同一行则需要忽略当前发现的
这个最大值。
======================================*/
#include<stdio.h>
int main()
{
int n,i,a[];
int max=-,t,len=;
char ch;
int first;
freopen("5.in","r",stdin);
scanf("%d",&n);
getchar();
for(i=;i<n;i++)
{
scanf("%d%c",&t,&ch);
while(ch==',')
{
if(t>max)//发现新的最大值
{
max=t;//记录最大值
len=;//发现新的最大值,要重置数组下标
a[len]=i;//记录最大值的行号
}
else if(max==t)
{
if(i!=a[len])//确保同一行里面相同大小的最大数多次出现也只记录一次行号
{
len++;//下标前移一个单位
a[len]=i;//记录最大值的行号
}
}
ch=' ';//清空ch的值
scanf("%d%c",&t,&ch);
}/**/
if(t>max)
{
max=t;
len=;
a[len]=i;
}
else if(max==t)
{
if(i!=a[len])
{
len++;
a[len]=i;
}
}
}
printf("%d\n",max);
first=;
for(i=;i<=len;i++)
{//输出行号时注意:题目要求行号从1开始计算。
if(first)
{
printf("%d",a[i]+);
first=;
}
else printf(",%d",a[i]+);
}
printf("\n");
return ;
}

OpenJudge计算概论-找最大数序列的更多相关文章

  1. OpenJudge计算概论-找和为K的两个元素

    /*============================================================== 找和为K的两个元素 总时间限制: 1000ms 内存限制: 65536 ...

  2. Openjudge计算概论-奇数单增序列

    /*===================================== 奇数单增序列 总时间限制: 1000ms 内存限制: 65536kB 描述 给定一个长度为N(不大于500)的正整数序列 ...

  3. OpenJudge计算概论-求分数序列和

    /*======================================================================== 求分数序列和 总时间限制: 1000ms 内存限制 ...

  4. OpenJudge计算概论-找出第k大的数

    /*================================================ 找出第k大的数 总时间限制: 1000ms 内存限制: 1000kB 描述 用户输入N和K,然后接 ...

  5. AC日记——找最大数序列 openjudge 1.9 10

    10:找最大数序列 总时间限制:  1000ms 内存限制:  65536kB 描述 输入n行,每行不超过100个无符号整数,无符号数不超过4位.请输出最大整数以及最大整数所在的行号(行号从1开始). ...

  6. OpenJudge计算概论-取石子游戏

    OpenJudge计算概论-取石子游戏[函数递归练习] /*====================================================================== ...

  7. Openjudge计算概论——数组逆序重放【递归练习】

    /*===================================== 数组逆序重放 总时间限制:1000ms 内存限制:65536kB 描述 将一个数组中的值按逆序重新存放. 例如,原来的顺 ...

  8. OpenJudge计算概论-计算书费

    /*============================================== 计算书费 总时间限制: 1000ms 内存限制: 65536kB 描述 下面是一个图书的单价表: 计算 ...

  9. OpenJudge计算概论-最高的分数

    /*======================================================== 最高的分数 总时间限制: 1000ms 内存限制: 65536kB 描述 孙老师 ...

随机推荐

  1. Win8远程[你的凭据不工作]的解决办法

    用户名前加你的计算机名称就可以了....win8也会有这样的问题,有点匪夷所思了......

  2. sqlite 数据类型详解

    大多数的数据库引擎(到现在据我们所知的除了sqlite的每个sql数据库引擎)都使用静态的.刚性的类型,使用静态类型,数据的类型就由它的容器决定,这个容器是这个指被存放的特定列. Sqlite使用一个 ...

  3. 数据库 SQL优化

    1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...

  4. HDU 3932

    http://acm.hdu.edu.cn/showproblem.php?pid=3932 一定范围的平面上给一些点,求到这些点的最大距离最小,和上一题的题意正好相反,稍微改一下就可以 这个问题又叫 ...

  5. FSM

    一.状态机简单介绍 软件设计中的状态机概念,一般是指有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和 ...

  6. 《深入浅出Node.js》第3章 异步I/O

    @by Ruth92(转载请注明出处) 第3章 异步I/O Node 的基调:异步 I/O.事件驱动.单线程. Node 不再是一个服务器,而是一个可以基于它构建各种高速.可伸缩网络应用的平台. No ...

  7. android内嵌入webview导致闪退

    这里碰到的是各种闪退情况之一,webview退出后,程序里立马需要申请内存空间做别的事情,这时内存不够就会闪退,做法就是延时个几百毫秒,在这段时间内让java把该回收的内存都回收,然后延时到了再做接下 ...

  8. ES6 — 数组Array

    ES6对数组引入了几个新函数: (1) Array.of() 作用是将一组数值,转换为数组. Array.of(1,2,3,4); //[1,2,3,4] (2) Array.from() 作用是把类 ...

  9. easyUI分页显示

    struts2: http://www.cnblogs.com/huozhicheng/archive/2011/09/27/2193605.html springMVC http://blog.cs ...

  10. c 深度剖析 1

    1.register register 变量必须是能被CPU寄存器所接受的类型(32 位机器 寄存器为32位),必须是单个的值,长度小于或等于整形的长度 不能用&来获取register 变量的 ...