新手求指导:自己弄的小程序的半成品,麻烦看一下第五个选项为什么筛选不出来最大值?
程序代码:#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
main()
{
int sum1,c,d,i,q,w,r,f,g,j,max=-32768,min=32767;
float a,b,h[i],sum2=0,ave;
double e=1;
char z;
printf("请选择:\n1:在a-b区间整数和(a<b且区间不包括a和b)\n2:n!\n3:若干个任意整数之和\n4:若干个任意整数的平均值\n5:若干个任意整数的最大值\n6:若干个任意整数的最小值\n7:水仙花数\n8:计算a—b之间所有含某个数字的数之和\n9:退出\n");
scanf("%c",&z);
switch(z)
{
case '1':
printf("please input a and b.\n");
scanf("%f%f",&a,&b);
c=a+1;
d=b;
if(d==b)
d=d-1;
else
d=d;
sum1=0;
for(i=c;i<=d;i++)
sum1=sum1+i;
printf("在a-b区间整数和(a<b)为%d\n",sum1);
break;
case '2':
do
{
printf("请输入n的值(n>0):\n");
scanf("%d",&f);
}while(f<=0);
for(g=1;g<=f;g++)
e=e*g;
printf("%d!=%f",f,e);
break;
case '3':
printf("请输入要输入数字的个数:\n");
scanf("%d",&j);
for(i=1;i<=j;i++)
{printf("请输入第%d个数字:",i);
scanf("%f",&h[i]);
sum2=sum2+h[i];
}
printf("%d个数字的和为%f",j,sum2);
break;
case '4':
printf("请输入要输入数字的个数:\n");
scanf("%d",&j);
for(i=1;i<=j;i++)
{printf("请输入第%d个数字:",i);
scanf("%f",&h[i]);
sum2=sum2+h[i];
}
ave=sum2/j;
printf("%d个数字的平均值为%f",j,ave);
break;
case '5':
printf("请输入要输入数字的个数:\n");
scanf("%d",&j);
for(i=1;i<=j;i++)
{
printf("请输入第%d个数字:",i);
scanf("%f",&h[i]);
}
for(i=1;i<=10;i++)
{
if(h[i]>max)
max=h[i];
}
printf("%d个数字的最大值为%f",j,max);
break;
case '6':
case '7':
printf("100-999之间的所有水仙花数为:\n");
for(q=100;q<=999;q++)
{
w=q/100;
e=q%100/10;
r=q%10;
if(w*w*w+e*e*e+r*r*r==q)
printf("100-999之间的所有水仙花数为:\n%d\n",q);
}
break;
case '8':
case '9':return;
}
system("pause");
}
不管怎么弄始终显示最大值为0,为什么?不知道哪里错了

