为了存储10个整数,首先要创建一个能容纳10个元素的整形数组。
//创建一个能够存储10个整形的数组并把其中的元素初始化成0
int arr[10] = { 0 };
然后输入10个整数。由于是往数组中输入10个元素,数组是通过下标来访问的,所以需要用for循环产生0~9的下标,配合scanf来输入。
//输入
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
接着就需要比较大小了。有一种比较麻烦的做法(不推荐):先对10个元素进行排序(参考冒泡排序),比方说排成降序,那么第一个元素就是最大值。由于冒泡排序是循环套循环,代码的执行效率非常低。
由于只需要求出最大值,推荐一种简单的解法。参考打擂台:10个人打擂台,第一个人上去,后面9个人排队和他打,赢了就替换掉他,以此类推。这些人都打完后,最强的人就站在擂台上。
求最大值也一样。先假设第一个元素是最大值
int max = arr[0];//假设第一个元素是最大值
然后把后面的数依次和max比较,如果比max大就更新max
//把后面的元素与max比较,如果比max大就更新max
for (i = 1/*这里从第二个元素开始*/; i < 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
此时max里面放的就是10个数中的最大值了。
最后输出max
//输出
printf("max = %d\n", max);
完整代码如下
#include <stdio.h>
//求10个整数的最大值
int main()
{
//创建一个能够存储10个整形的数组并把其中的元素初始化成0
int arr[10] = { 0 };
//输入
int i = 0;
for (i = 0; i < 10; i++)
{
scanf("%d", &arr[i]);
}
//比较大小
int max = arr[0];//假设第一个元素是最大值
//把后面的元素与max比较,如果比max大就更新max
for (i = 1/*这里从第二个元素开始*/; i < 10; i++)
{
if (arr[i] > max)
{
max = arr[i];
}
}
//输出
printf("max = %d\n", max);
return 0;
}