第二大整数

第二大整数

问题描述

  编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束。然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来。说明:(1)0表示输入结束,它本身并不计入这组整数中。(2)在这组整数中,既有正数,也可能有负数。(3)这组整数的个数不少于2个。

  输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0。

  输出格式:输出第二大的那个整数。

  输入输出样例

样例输入

5 8 -12 7 0

样例输出

7

#include <stdio.h>

int main(){

	int tmp,i,max,smax; //max 为第一大整数,smax为第二大整数
	i = 0;
	max = smax = -99999999; 

	while(scanf("%d",&tmp) != EOF && tmp != 0){
		if(tmp >= max){ //有比目前max大的整数,则max成为第二大整数
			smax = max;
			max = tmp;
		}else if(tmp >= smax){  // 若后面没有比max大的整数,则考虑有没有比第二大整数大的数,有则为第二大
			smax = tmp;
		}
	}

	printf("%d\n",smax);
	return 0;
}
时间: 2024-12-28 01:22:23

第二大整数的相关文章

C语言 &#183; 第二大整数

算法提高 第二大整数 时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来.说明:(1)0表示输入结束,它本身并不计入这组整数中.(2)在这组整数中,既有正数,也可能有负数.(3)这组整数的个数不少于2个. 输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0. 输出格式:输出第二大的那个整数. 输入输出样例 样例输入 5 8 -1

蓝桥杯 - 第二大整数 (逻辑判断 循环语句)

算法提高 第二大整数 时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来.说明:(1)0表示输入结束,它本身并不计入这组整数中.(2)在这组整数中,既有正数,也可能有负数.(3)这组整数的个数不少于2个. 输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0. 输出格式:输出第二大的那个整数. 输入输出样例 样例输入 5 8 -1

算法笔记_159:算法提高 第二大整数(Java)

目录 1 问题描述 2 解决方案   1 问题描述 问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来.说明:(1)0表示输入结束,它本身并不计入这组整数中.(2)在这组整数中,既有正数,也可能有负数.(3)这组整数的个数不少于2个. 输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0. 输出格式:输出第二大的那个整数. 输入输出样例 样例输入 5 8 -12 7 0 样例输出

算法提高 第二大整数

时间限制:1.0s   内存限制:512.0MB 问题描述 编写一个程序,读入一组整数(不超过20个),当用户输入0时,表示输入结束.然后程序将从这组整数中,把第二大的那个整数找出来,并把它打印出来.说明:(1)0表示输入结束,它本身并不计入这组整数中.(2)在这组整数中,既有正数,也可能有负数.(3)这组整数的个数不少于2个. 输入格式:输入只有一行,包括若干个整数,中间用空格隔开,最后一个整数为0. 输出格式:输出第二大的那个整数. 输入输出样例 样例输入 5 8 -12 7 0 样例输出

求两个大整数相乘的积,数字长度在127个字符之内。

计算两个大整数相乘的结果,数字不是double类型能表示的,数字长度没有限制(最大127位). 方法一:使用java中的大整数处理库函数,java.math.BigInteger,java.math.BigDecimal; 方法二:不利用库函数,自己实现其功能,可以练习自己对待复杂问题的处理能力,提高编程水平. 此代码中利于两者的结合,利于库函数可以看自己编写的代码的正确性. 1.主函数 import java.math.BigDecimal; import java.util.Scanner;

算法---大整数相加

原文:算法---大整数相加 开通博客开始第一次写发表算法博客.深知一半算法考试都是用C,C++,由于大四开始到今年毕业工作到现在一直从事C#开发,C++用得很少了.链表,指针也只知道一个概念了.用得没以前熟练了.所以后续更新的算法题我都是基于C#语法的.算法主要体现的是解题思路.跟题目一样,本次算法主要实现大数据相加. 解题思路: 1. 将大数据存储到一个链表中,C#中用List<int>来存储,每个节点表示每一位的数字. {1,2,3,4,5} =>12345 和{9,6,5,9,5}

大整数的乘法运算

思想:每次取第二个数的最高位进行一次乘法,把结果乘以10和下一次结果相加,题目来源:leetcode class Solution { public: //一个整数乘以一个个位数 string multOneBit(string num,int data) { int i = num.size() - 1,carry = 0; string res; for(;i >= 0;--i) { int value = (num[i] - '0') * data + carry; carry = val

大整数乘法python3实现

由于python具有无限精度的int类型,所以用python实现大整数乘法是没意义的,但是思想是一样的.利用的规律是:第一个数的第i位和第二个数大第j位相乘,一定累加到结果的第i+j位上,这里是从0位置开始算的.代码如下: import sys def list2str(li): while li[0]==0: del li[0] res='' for i in li: res+=str(i) return res def multi(stra,strb): aa=list(stra) bb=l

大整数四则运算

============ 日后再写!先将设计思想留下 ============= 定义并实现超长整数类double long,要求如下: 64位数据长度,有符号 支持+.-.*./运算 支持+=.-=./=运算 支持cin>>和cout<<操作 首先,我们的运算对象是大整数并且要支持cout<<和cin>>操作,数组和链表是可选择项.在这里我们用数组.数组有int型和char型,选哪个好呢?只能选char型,因为我们的大整数是有符号位的,必须用一个char字