题目
原题:
求最大值
张三有一堆数字, 他想知道这些数字中哪个数最大
输入 :
第一行: 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);
}
部分运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210119113244460.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzUzOTE2NDkw,size_16,color_FFFFFF,t_70)