新手求指导:自己弄的小程序的半成品,麻烦看一下第五个选项为什么筛选不出来最大值?
程序代码:
#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,为什么?不知道哪里错了