哪位大神教我写,c语言的作业,定义一个10个元素的数组,找出最大值打印出来。

如题所述

同学,你一共发了三张图片。
第一张,定义了一个10元素的一维整型数组,但只定义了三个元素值2、4、8,这代表什么呢?它说明后面的7个元素都是0!你定义的这个数组实际是:2、4、8、0、0、0、0、0、0、0。但这并不影响找到数组的最大值8,恰恰程序缺少这部分内容。
第二张,这个可能有一点问题,你仍然定义了一个10元素数组,但是你只写了9个数,9个数也无妨,图一还三个呢!关键是第9个数后面还有一个逗号!电脑可能会认为操作数丢失而报错。所以建议你要么增加一个数凑够10个,要么去掉那个逗号,让最后那个元素自动判为0。接下来就是找最大数,程序缺少这一部分。另外,你定义的temp=-32767没有多大作用。
图片三,你定义了一个3元素数组,只能在3个数中找最大数。
回归正题,就按图片1为基础,你把for语句中的i<=2改成i<10,还需要以下语句:
int max;
max=a[0];
for(i=1;i<10;i++)
if(max<a[i])max=a[i];
printf(“最大数 = %d\n”,max);追问

图片是老师举的例子,他随意打的

我还有作业,,课后的,晚上发问题,你做出来我采纳,这次是别的人做了,而且他没有按照老师规定的做,所以让我觉得不对,老师也不交

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-03
#include<stdio.h>
#define N 10
void main() { int a[10],i,m; //如果不输入可以写int a[10]={ 2,4,5,6,7,9,7,2,8,3 },i,m;
for ( i=0;i<N;i++ ) scanf("%d",&a[i]); //输入10个值
m=a[0]; for ( i=1;i<N;i++ ) if ( m<a[i] ) m=a[i];
printf("%d\n",m);
}追问

看不懂

追答

找最大值:先假定数组第1个元素的值是最大值m=a[0];
然后用循环变量i顺序访问数组其他元素,每次i循环时i=1~9
循环中比较m和a[i],如果记录的最大值m小于当前的a[i],则更换记录m成a[i]的值
这样循环一遍m中存放的必定是数组中的最大值,相当于用变量m在数组中挑出了一个最大值存放。

追问

不行生成不了

好多错误

N不知道哪里来

还有四个错误

一个了

确少函数标题

大哥回复我我在main()那里加了分号

追答

int a[10]={ 2,4,5,6,7,9,7,2,8,3 },i,m;
改成
//int a[10]={ 2,4,5,6,7,9,7,2,8,3 },i,m;

追问

可以生成出来但是没有东西

空白

追答

include
#define N 10
void main() { int a[10],i,m;
for ( i=0;i
#define N 10
void main() { int a[10]={ 2,4,5,6,7,9,7,2,8,3 },i,m;
m=a[0]; for ( i=1;i<N;i++ ) if ( m<a[i] ) m=a[i];
printf("%d\n",m);
}

追问

😂

可以了

改了好久

你说简单一点就好了

搞的那么复杂我是小白

而且老师用的是tmp

追答

ok

本回答被网友采纳
第2个回答  2017-05-03

int a[10]={2,4,8};

int max=a[0] ;

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

if(max<=a[i]){

max=a[i];

}

}

printf("%d",max)



第3个回答  2017-08-04
#include <stdio.h>
int main(void)
{
 int num[10];
 for(int j=0;j<10;j++)
  scanf("%d",num+j);
 for(int k=1;k<10;k++)
  if(num[0]<num[k])
   num[0]=num[k];
 printf("%d\n",num[0]);
 return 0;
}

相似回答