c语言不用数组求第二大的数,C语言,求数组中第二大值,两种方法.

//第一种方法

int sum = 0;

int a[20] = {0};

int max = 0,secMax = 0;

printf("20个随机数为: ");

for (int i = 0; i < 20; i++) {

a[i] = arc4random() %(50 - 10 + 1) + 10;//元素取值区间[10 - 50]

printf("%d ", a[i]);

}

printf("\n");

//第二大值

for (int i = 0; i < 20; i++) {

if (a[i] > max){

max = a[i]; //找出最大值

}

}

for (int i = 0; i < 20; i++) {

if (a[i] == max) {

continue;//找到最大值时跳出

}else if(a[i] > secMax){

secMax = a[i];

}

}

printf("第二最大值为:%d ", secMax);//输出第二最大值

//第二种方法:

int a [20] = {0};

//维数组中的元素赋值,范围[10,50]

for (int i= 0; i< 20; i++) {

a[i] = arc4random() % (50 - 10 + 1) + 10;

printf("%d ", a[i]);

}

int max = 0, min = a[0], sum = 0, secondMax = 0;//max存储最大值,min存储最小值,sum存储和,secoondMax第二最大值

float avg = 0.0;//存储平均值

//求最大值,第二大值

for (int i = 0; i < 20; i++) {

if (a[i] > max) {

secondMax = max ;//存储max中的值

max = a[i];//存储大值

}else if( a[i] != max && a[i] > secondMax){

secondMax = a[i];//存储大于secondMax,但是不大于max的值

}

}

printf("\nmax= %d secondMax = %d", max, secondMax);

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码来解4行4列数组的最大值: ```c #include <stdio.h> int main() { int arr[4][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16}}; int max = arr[0][0]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } } printf("The maximum value in the array is: %d\n", max); return 0; } ``` 这段代码定义了一个4行4列的二维数组 `arr`,并将其初始化为1到16的值。接下来,使用两个嵌套的循环来遍历整个数组,并使用一个变量 `max` 来记录当前找到的最大值。如果遍历到一个比 `max` 更大的元素,就将 `max` 更新为该元素的值。最终,输出 `max` 的值即可。 ### 回答2: 要用C语言程序解一个4行4列数组的最大值,可以按照以下步骤来实现: 1. 首先,声明一个4行4列的二维数组,用于存储据。可以使用如下语句声明数组: ```c int arr[4][4]; ``` 2. 然后,使用双重循环遍历数组中的每个元素,并通过用户输入或者随机生成的方式为每个元素赋值。可以使用如下语句实现: ```c for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { printf("请输入第%d行第%d列的元素:", i+1, j+1); scanf("%d", &arr[i][j]); // 或者使用随机生成的方式为元素赋值,如:arr[i][j] = rand(); } } ``` 3. 接下来,声明一个变量用于保存最大值,并将其初始化为数组的第一个元素。可以使用如下语句实现初始化: ```c int max = arr[0][0]; ``` 4. 再然后,使用双重循环遍历数组中的每个元素,比较每个元素与当前最大值的大小,如果大于最大值,则更新最大值。可以使用如下语句实现比较与更新: ```c for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (arr[i][j] > max) { max = arr[i][j]; } } } ``` 5. 最后,输出大值。可以使用如下语句实现输出: ```c printf("数组的最大值为:%d\n", max); ``` 完成以上步骤后,即可通过C语言程序解4行4列数组的最大值。 ### 回答3: 要用C语言程序写一个4行4列数组的最大值,可以按照以下步骤进行编写: 1. 首先,定义一个4行4列的二维数组,用来存储需要大值据。 ```c int array[4][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; ``` 2. 接下来,定义一个变量max,用来存储最大值,初值可以设为数组中第一个元素的值。 ```c int max = array[0][0]; ``` 3. 使用两个嵌套的循环来遍历数组中的所有元素,比较每个元素与max的大小,如果大于max则更新max的值。 ```c for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (array[i][j] > max) { max = array[i][j]; } } } ``` 4. 最后,输出大值max。 ```c printf("最大值为:%d", max); ``` 完整的C语言程序如下: ```c #include <stdio.h> int main() { int array[4][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}, {13, 14, 15, 16} }; int max = array[0][0]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { if (array[i][j] > max) { max = array[i][j]; } } } printf("最大值为:%d", max); return 0; } ``` 运行以上程序,输出结果为:最大值为:16。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值