用c语言编程,从键盘上输入10个整数存放到一维数组中,输出其中最大的数及其对应的数组下标值

如题所述

解题思路:先键盘输入10个整数,假设数组的第1个是最大数max,同时设置最大值下标为0,接着for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标,最后输出最大数和数组下标。

参考代码:

#include<stdio.h>

int main() {

int i,a[10],max,maxi;

//输入10个整数

for(i=0;i<10;i++)

{

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

}

//假设数组的第1个是最大数max,同时设置最大值下标为0

max=a[0];

maxi=0;

//for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标

for(i=1;i<10;i++){

if(a[i]>max){

max=a[i];

maxi=i;

}

}

//输出最大数和数组下标

printf("最大数为:%d,数组下标为:%d",max,maxi);

return 0;

}

程序运行结果如下:

参考资料:

for循环遍历求数组中的最大值是最常用的方法,但还有一种方法就是循环链表的遍历;

首先需要创建数据域和指针域,回到mian函数中,创建三个节点,然后用头节点申请空间,再输入数据到头节点,最后用while语句,进行遍历链表。如下是循环链表遍历的实例:

void show(list *p) //遍历,循环链表的遍历最好用do while语句 ,因为头节点就有值

{

list *temp;

temp=p;

do

{

printf("%5d",temp->data);

temp=temp->next;

}

while(temp!=p);

printf("\n");

}

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

#include"stdio.h"

//从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出

intmain()

{

inti;

floatmax,min,num[10];

printf("请输入10个数,每输入一个数按回车键结束:\n");

for(i=0;i<10;i++)

{

scanf("%f",&num[i]);

}

max=min=num[0];

for(i=1;i<10;i++)

{

if(max<num[i])

max=num[i];

elseif(min>num[i])

min=num[i];

}

printf("最大为:%f\n最小为:%f\n",max,min);

return0;

}

扩展资料

从键盘向一维数组输入10个实数,并且计算最大值,最小值和平均值

#include<stdio.h>

#include<stdlib.h>

intmain()

{

inti=0;

intarray[10];

floatAVER=0.0;

floatSUM=0.0;

floatMAX=0.0;

floatMIN=0.0;

intCHOOSE=0;

while(CHOOSE<=3)

{

for(i=0;i<10;i++)

{

printf(“请任意输入10个额实数:\n”);

scanf("%d",array[i]);

}

for(i=0;i<10;i++)

{

SUM+=array[i];

printf(“总数和为=%f\n”,SUM);

}

for(i=0;i<10;i++)

{

AVER=SUM/10.0;

printf(“平均值为=%f\n”,AVER);

}

MAX=MIN=array[0];

for(i=0;i<10;i++)

{

if(array[i]>MAX)

{

MAX=array[i];

}

if(array[i]<MIN)

{

MIN=array[i];

}

}

printf(“最大值为=%f\n”,MAX);

printf(“最小值为=%f\n”,MIN);

}

system(“pause”);

return0;

}

本回答被网友采纳
第2个回答  2015-12-19

思路:先键盘输入一个数赋值给数组的第一个数,并且赋值给最大数max,同时设置最大值下标为0,接着for循环依次赋值给数组相应位置并判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标,最后输出最大数和最大数下标。

参考代码:

#include "stdio.h" 
int main() {
int i,a[10],max,maxi;
scanf("%d",&a[0]);
max=a[0];
maxi=0;
for(i=1;i<10;i++){
scanf("%d",&a[i]);
if(a[i]>max){
max=a[i];
maxi=i;
}

printf("最大数为:%d,最大数下标为:%d",max,maxi);
return 0;
}
/*
运行结果:(例如求5的阶乘) 
1 2 5 3 4 6 7 9 8 0
最大数为:9,最大数下标为:7
*/

第3个回答  2013-05-17
#include<stdio.h>
int main()
{
int i;
int max=0;
int index=0;
int a[10]={};
for(i=0;i<10;i++)
{
printf("请输入第%d个整数:",i+1);
scanf("%d",&a[i]);
if(a[i]>max)
{
max=a[i];
index=i;
}
}
printf("输入的最大的数是:%d,对应下标是:%d\n",max,index);
return 0;
}本回答被提问者采纳
第4个回答  2021-01-11

相似回答