新手编程求指导
程序代码:
#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,min,y,p,x,nCnt=0,nSum=0; float a,b,h[1024],sum2=0,ave; double e=1; char z; char sBuff[1024]; 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",&y); for(i=1;i<=y;i++) { printf("请输入第%d个数字:",i); scanf("%f",&h[i]); } max=min=h[1]; for(i=1;i<=1024;i++) { if(max<=h[i]) max=h[i]; if(min>=h[i]) min=h[i]; } printf("%d个数字的最大值为%f\n",y,max); break; case '6': printf("请输入要输入数字的个数:\n"); scanf("%d",&j); for(i=1;i<=j;i++) { printf("请输入第%d个数字:",i); scanf("%f",&h[i]); } for(i=1;i<=y;i++) { if(min>=h[i]) min=h[i]; } printf("%d个数字的最小值为%f\n",j,min); break; 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': printf("Please input a b c:\n"); scanf("%d %d %c",&p,&q,&c);//输入数字a、b和字符c for(x=p;x<=q;x++) { sprintf(sBuff,"%d",x);//将数字转换成字符串 if(strchr(sBuff,c))//看字符是否包含在字符串中 { nCnt++; nSum += x; } } printf("%d-%d中包含数字%c的整数的数字有%d个,其和为:%d\n", p,q,c, nCnt,nSum); break; case '9':return; } system("pause"); }这是一个选择菜单的程序,但是做好以后第五个选项每次求最大值始终显示最大值是0,帮忙看一下为什么,,,,反复调试要崩溃了