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

原创 2013年12月04日 23:31:07



题目


解决代码及点评

/************************************************************************/
/* 
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)新建工程

2)选择工程

3)创建完工程如下图:

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

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

6)添加文件

7)拷贝代码与运行


程序运行结果





版权声明:本文为博主原创文章,未经博主允许不得转载。

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

题目解决代码及点评 /* 功能: 编写子函数, 求一维整型数组M[10]的最大值及次最大值(次最大值可能不存在)。 主函数中输入10个整数, 然后调用上述子函数, 若次最大值存在, 则输...
  • yincheng01
  • yincheng01
  • 2013年12月10日 00:38
  • 1803

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

题目解决代码及点评#include #include /* 编写一函数求三个整数的最大值。 */ void f62(int a ,int b,int c) { int temp=a; if (...
  • yincheng01
  • yincheng01
  • 2013年12月05日 14:05
  • 1803

基于visual Studio2013解决C语言竞赛题之0605strcat

题目解决代码及点评/* 5. 写一函数,将两个字符串连接,即编写一strcat函数。 */ #include #include void stract(char *p1,char *p2...
  • yincheng01
  • yincheng01
  • 2013年12月05日 14:49
  • 1719

基于visual Studio2013解决C语言竞赛题之0607strcpy

题目解决代码及点评#include #include /* 写一函数将字符数组s1中的全部字符复制到字符数组s2中,不用strcpy函数。 */ void f67(char s1[27], cha...
  • yincheng01
  • yincheng01
  • 2013年12月05日 15:19
  • 1652

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

题目解决代码及点评/************************************************************************/ /* 7. 任意十个数,打印出...
  • yincheng01
  • yincheng01
  • 2013年12月02日 23:04
  • 1697

基于visual Studio2013解决C语言竞赛题之0422牛顿迭代法

题目解决代码及点评#include #include /* 用牛顿迭代法求方程在 1.5附近的根(精度在10^-5) 2*x^3-4*x^2+3*x-6=0 */ using namespace st...
  • yincheng01
  • yincheng01
  • 2013年12月03日 15:28
  • 1635

基于visual Studio2013解决C语言竞赛题之0608水仙花函数

题目解决代码及点评/* 功能:写一函数判断某数是否“水仙花数”,所谓“水仙花数”是指一个三位数, 其各位数字立方和等于该数本身。 */ #include #include int flo...
  • yincheng01
  • yincheng01
  • 2013年12月05日 15:28
  • 1914

基于visual Studio2013解决C语言竞赛题之1094纵横图

题目解决代码及点评/************************************************************************/ /* 二)程序设计 ⑴奇阶纵横图...
  • yincheng01
  • yincheng01
  • 2013年12月10日 15:26
  • 2546

基于visual Studio2013解决C语言竞赛题之1057打印加数

题目解决代码及点评 /* 功能: 已知N是正整数, 它可拆写成三个正整数N1、N2和N3之和的形式N=N1+N2+N3。 请编程序打印出满足上式的全部组合,并当N1、N2和N3中至少有两个是素数...
  • yincheng01
  • yincheng01
  • 2013年12月10日 00:11
  • 1625

基于visual Studio2013解决C语言竞赛题之1045打印成绩

题目解决代码及点评/* 功能:用记录来描述一个学生的成绩情况,内容包括:姓名、学号、数学成绩和PASCAL成绩。 要求对一个小组的10个学生的成绩进行统计处理: 1)计算学生的总平均分,...
  • yincheng01
  • yincheng01
  • 2013年12月09日 21:01
  • 1511
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于visual Studio2013解决C语言竞赛题之0519最大值
举报原因:
原因补充:

(最多只允许输入30个字)