NO.16【婳骨】の求最大数

题目

原题:
	求最大值
	张三有一堆数字, 他想知道这些数字中哪个数最大
	输入 :
	第一行: n(0 < n < 100, 表示有n个整数)
	第二行~第n + 1行 : 每行一个整数An(-1000 <= An <= 1000) 表示张三的数字
	输出 : 这些数字中最大的那个数
	样例输入 :
	8
	32
	45
	564
	78
	123
	73
	- 47
	3
	样例输出:
	564

代码

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable:4996)
#pragma warning(disable:6385)
#pragma warning(disable:6001)

void In(double* a);	//判断输入
int main()
{
	double num0;		//总数
	int num;			//总数
	double x[999];		//所输入的数字
	int y[999];			//所输入的数字整数形式
	int i, j;				//用于循环
	int temp;			//用于排序中的临时变量
	system("title 【婳骨】の求最大数");
	printf("欢迎来到求最大数系统\n接下来请输入要输入的数字个数(1~999的整数,小数只取整数部分):\n");
	while (1)
	{
		In(&num0);
		num = (int)num0;
		if (num > 999 || num < 1)
		{
			printf("输入错误,请重新输入:");
		}
		else
		{
			printf("个数录入成功!\n");
			break;
		}
	}
	printf("接下来请录入数字(-1000~1000的整数)\n");
	for (i = 0; i < num; i++)
	{
		while (1)
		{
			printf("请输入第%d个数:", i + 1);
			In(&x[i]);
			y[i] = (int)x[i];
			if (y[i] > 1000 || y[i] < -1000)
			{
				printf("输入错误!");
			}
			else
			{
				break;
			}
		}
	}
	if (num == 1)
	{
		printf("所输入的%d个数中,最小数为:%d\n", num, y[0]);
		printf("所输入的%d个数中,最大数为:%d\n", num, y[0]);
	}
	else
	{
		for (i = 0; i < num - 1; i++)//外层循环
		{
			for (j = 0; j < num - i; j++)//内层循环,主要的功能是把数值最大的数,‘沉底’或者‘上浮’
			{
				if (y[j] < y[j + 1])//前后数值比较,保存,交换。
				{
					temp = y[j];
					y[j] = y[j + 1];
					y[j + 1] = temp;
				}
			}
		}
		printf("所输入的%d个数中,最大数为:%d\n", num, y[0]);
		printf("所输入的%d个数中,最小数为:%d\n", num, y[num - 1]);
		printf("谢谢使用!\n");
	}
	system("pause");
	return 0;
}
void In(double* a)	//对输入数据进行判断
{
	do
	{
		if (scanf_s("%lf", a) == 1)
		{
			break;
		}
		char choice;
		while ((choice = getchar()) != '\n' && choice != EOF);
		printf("输入的不是数字!\n");
	} while (scanf_s("%lf", a) != 1);
}

部分运行结果

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值