0
点赞
收藏
分享

微信扫一扫

基于visual Studio2013解决C语言竞赛题之0519最大值

眼君 2022-03-18 阅读 8

 基于visual Studio2013解决C语言竞赛题之0519最大值_#include


题目

基于visual Studio2013解决C语言竞赛题之0519最大值_#include_02


解决代码及点评

/************************************************************************/
/*
19. 求N个数中的最大值,最大值出现的次数,然后求出次大值(次大值一定存在)

*/
/************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>

int FindMax19(int * arr,int num) // 求最大值
{
int max=0;
for(int i=1;i<num;i++) // 循环查找最大值
{
if (arr[max]<arr[i])
{
max=i;
}

}
return arr[max];
}
int FindSMax19(int * arr,int num) // 查找次最大值,一样通过循环去查找
{
int max=arr[0];
int two=arr[0];
for(int i=1;i<num;i++)
{
if (max<arr[i]) // 当发现一个更大的数时,要保存最大数和第二大的数
{ two=max;
max=arr[i];
}
else if (arr[i]>two&&arr[i]<max) // 或者某一个数只是大于第二大的数,那么就只要更换第二大的就行
{
two=arr[i];
}


}
if (two==max)
{
printf("没有次大值");
return -1;
}
return two;
}

void main()
{
int arr[10]={0};
for (int i=0;i<10;i++ )
{
arr[i]=rand()%20;
}
for (int i=0;i<10;i++ )
{
printf("%5d",arr[i]);
}
int num=0;
int max=FindMax19(arr,10);
for (int j=0;j<10;j++)
{
if (arr[j]==max)
{
num++;
}
}
printf("最大值为%d出现次数为:%d",max,num);
printf("次大值为:%d",FindSMax19(arr,10));
system("pause");
}

代码编译以及运行

由于资源上传太多,资源频道经常被锁定无法上传资源,同学们可以打开VS2013自己创建工程,步骤如下:

1)新建工程

基于visual Studio2013解决C语言竞赛题之0519最大值_上传_03

2)选择工程

基于visual Studio2013解决C语言竞赛题之0519最大值_#include_04

3)创建完工程如下图:

基于visual Studio2013解决C语言竞赛题之0519最大值_上传_05

4)增加文件,右键点击项目

基于visual Studio2013解决C语言竞赛题之0519最大值_#include_06

5)在弹出菜单里做以下选择

基于visual Studio2013解决C语言竞赛题之0519最大值_i++_07

6)添加文件

基于visual Studio2013解决C语言竞赛题之0519最大值_上传_08

7)拷贝代码与运行

基于visual Studio2013解决C语言竞赛题之0519最大值_i++_09


程序运行结果


基于visual Studio2013解决C语言竞赛题之0519最大值_i++_10


举报

相关推荐

0 条评论