,输入n个数,求其中的最大值, C语言循环结构

如题所述

利用C语言在一批数中找最大数的一般方法如下:

(1)将数据存入一个一维数组中,例如存入a数组中。

(2)在数组中找最大值(假设用变量max存放最大值)。首先将a[0]视为最大数,即首先使max=a[0]。将除a[0]之外的其他所有元素(用a[i]表示)逐个与max比较,若a[i]>max,则a[i]为目前的最大数,使max=a[i]。在所有元素比较完之后,max即为最大数。

(3)输出最大数(max的值)。

这个问题涉及C语言for循环嵌套和一维数组内容,以6个数为例,具体程序如下:

#include<stdio.h>

int main(void)

{

int a[6],i,max;

for(i=0;i<6;i++)                       //将6个数输入a数组

scanf("%d",&a[i]);

max=a[0];                               //首先将a[0]视为最大数,将a[0]存入max

for(i=1;i<6;i++)                       //将其余5个数与max比较,大者存入max

if(a[i]>max)   max=a[i];

printf("max=%d\n",max);         //输出最大值

return 0;

}

程序运行结果:

10  2  14  6  5  11

max=14

扩展资料:

一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需经过定义、初始化和应用等过程。

数组声明:

(1)在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。

(2)数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。

利用new运算符为数组元素分配内存空间的方式称为动态分配方式。

举例:

int[]x; //声明名称为x的int型数组

x=new int[10]; //x数组中包含有10个元素,并为这10个元素分配内存空间

在声明数组时,也可以将两个语句合并成一行,格式如下:

数据类型[]数组名= new 数据类型[个数];

利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:

int[]x = new int [10];

等号左边的int[]x相当于定义了一个特殊的变量x,x的数据类型是一个对int型数组对象的引用,x就是一个数组的引用变量,其引用的数组元素个数不定。

等号右边的new int[10]就是在堆内存中创建一个具有10个int型变量的数组对象。int[]x = new int [10];就是将右边的数组对象赋值给左边的数组引用变量。 

参考资料:数组_百度百科



温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-12-20

#include<stdio.h>

int main()

{int i,max,x,n;

 scanf("%d",&n); //读入数据个数

 for(i=0;i<n;i++) //读入n个数

 {

  if(i==0)scanf("%d",&max); //第一个数设为max

    else

    {scanf("%d",&x); //读入后面的数

     if(max<x)max=x; //若后面的数>max,就更新max的值

    }

 }

 printf("max=%d\n",max); //最后输出最大值

getch();

 return 0;

}

第2个回答  2015-05-28

#include <stdio.h>

const int MAXSIZE = 10;

int main () {
int a[MAXSIZE],n,i,max;
printf("n = ");
scanf("%d",&n);
if(n < 0 || n > MAXSIZE) n = MAXSIZE;
printf("输入 %d 个整数:\n",n);
for(i = 0; i < n; ++i)
scanf("%d",&a[i]);
max = a[0];
for(i = 1; i < n; ++i)
if(a[i] > max) max = a[i];
printf("最大的是:%d\n",max);
return 0;
}

本回答被网友采纳
第3个回答  2015-05-28
#include<stdio.h>
void main()
{
int n,max,min,a,i;
printf("请输入N的值:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("请输入一个数:");
scanf("%d",&a);
if(i==1)
{
max=min=a;
}
if(i!=1&&max<a)
max=a;
if(i!=1&&min>a)
min=a;
}
printf("这%d个数中最大值是",n,max);
}
第4个回答  2020-01-14
利用C语言在一批数中找最大数的一般方法如下:
(1)将数据存入一个一维数组中,例如存入a数组中。
(2)在数组中找最大值(假设用变量max存放最大值)。首先将a[0]视为最大数,即首先使max=a[0]。将除a[0]之外的其他所有元素(用a[i]表示)逐个与max比较,若a[i]>max,则a[i]为目前的最大数,使max=a[i]。在所有元素比较完之后,max即为最大数。
(3)输出最大数(max的值)。
这个问题涉及C语言for循环嵌套和一维数组内容,以6个数为例,具体程序如下:
#include<stdio.h>
int
main(void)
{
int
a[6],i,max;
for(i=0;i<6;i++)

//将6个数输入a数组
scanf("%d",&a[i]);
max=a[0];

//首先将a[0]视为最大数,将a[0]存入max
for(i=1;i<6;i++)

//将其余5个数与max比较,大者存入max
if(a[i]>max)

max=a[i];
printf("max=%d\n",max);

//输出最大值
return
0;
}
程序运行结果:
10
2
14
6
5
11
max=14
扩展资料:
一维数组是最简单的数组,其逻辑结构是线性表。要使用一维数组,需经过定义、初始化和应用等过程。
数组声明:
(1)在数组的声明格式里,“数据类型”是声明数组元素的数据类型,可以是java语言中任意的数据类型,包括简单类型和结构类型。“数组名”是用来统一这些相同数据类型的名称,其命名规则和变量的命名规则相同。
(2)数组声明之后,接下来便是要分配数组所需要的内存,这时必须用运算符new,其中“个数”是告诉编译器,所声明的数组要存放多少个元素,所以new运算符是通知编译器根据括号里的个数,在内存中分配一块空间供该数组使用。
利用new运算符为数组元素分配内存空间的方式称为动态分配方式。
举例:
int[]x;
//声明名称为x的int型数组
x=new
int[10];
//x数组中包含有10个元素,并为这10个元素分配内存空间
在声明数组时,也可以将两个语句合并成一行,格式如下:
数据类型[]数组名=
new
数据类型[个数];
利用这种格式在声明数组的同时,也分配一块内存供数组使用。如上面的例子可以写成:
int[]x
=
new
int
[10];
等号左边的int[]x相当于定义了一个特殊的变量x,x的数据类型是一个对int型数组对象的引用,x就是一个数组的引用变量,其引用的数组元素个数不定。
等号右边的new
int[10]就是在堆内存中创建一个具有10个int型变量的数组对象。int[]x
=
new
int
[10];就是将右边的数组对象赋值给左边的数组引用变量。
参考资料:数组_搜狗百科
相似回答