解题思路:先键盘输入10个整数,假设数组的第1个是最大数max,同时设置最大值下标为0,接着for循环依次判断其是否大于最大数,如果大于替换掉最大值,并更新最大值下标,最后输出最大数和数组下标。
参考代码:
#include
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");
}
#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 max=num[i]; elseif(min>num[i]) min=num[i]; } printf("最大为:%f\n最小为:%f\n",max,min); return0; } 扩展资料 从键盘向一维数组输入10个实数,并且计算最大值,最小值和平均值 #include #include 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=array[i]; } } printf(“最大值为=%f\n”,MAX); printf(“最小值为=%f\n”,MIN); } system(“pause”); return0; }
思路:先键盘输入一个数赋值给数组的第一个数,并且赋值给最大数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
*/
#include
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;
}