c程序设计求数组float=a[10],从键盘输入数据,求最大值和最小值以及下标。哪里错了呀??

#include <stdio.h>
void main()
{
float a[10];
double max,maxi,min,mini,i;
printf("input 10 numbers:\n");
scanf("%f",&a[10]);
max=0;
min=0;
for(i=0;i<=9;i++)
{
if(max<a[10])
{max=a[10];}
if(min>a[10])
{min=a[10];}

}
maxi=i;
mini=i;
printf("max=%fmin=%f\n",max,min);
printf("maxi=%fmini=%f\n",maxi,mini);
}

你的程序问题还真不少,首先将10个数存入数组要用循环,然后下标都是正整数不要定义成double类型,再然后max,min赋初值应该是a[0],寻找最大值最小值的方式也不对,下标的寻找方式也有问题,我给你改好了,你自己对照下吧下面是完整的程序:

#include <stdio.h>
void main()
{
float a[10];
double max,min;
int i,maxi,mini;
printf("input 10 numbers:\n");
for (i=0; i<10; i++)
scanf("%f",&a[i]);
max=a[0];
min=a[0];
maxi = mini = 0;
for(i=0;i<=9;i++) 
{
if(max<a[i]) // 找最大值
{           
max = a[i]; 
maxi = i;  //寻找最大值下标
}
if(min>a[i])    // 找最小值
{
min = a[i];
mini = i;  //寻找最小值下标
}
}
printf("max=%f min=%f\n",max,min);
printf("maxi=%d mini=%d\n",maxi,mini);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-10
scanf("%f",&a[10]);数组的下标是从0-9,10就越界了追问

谢谢,我修改了,可是结果还是不对,您知道还有哪里错了吗

追答#include<stdio.h>
int main()
{
int a[10],max_,min_,maxInd,minInd;
int i;
scanf("%d",&a[0]);
max_=a[0];
min_=a[0];
maxInd=minInd=0;
for(i=1;i<10;i++)
{
scanf("%d",&a[i]);
if(a[i]>max_)
{
max_=a[i];
maxInd=i;

}
if(a[i]<min_)
{
min_=a[i];
minInd=i;
}
}
printf("最大值:%d 最大值所在位置:%d\n最小值:%d 最小值所在位置:%d\n",max_,maxInd,min_,minInd);
return 0;
}

追问

还是没结果呀

本回答被提问者采纳
相似回答