#include <malloc.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void menu();
void menu1();
void menu2();
void menu3();
void menu4();
int main() {
int q;
P:
menu();
printf("请选择您所需要的功能:\n");
scanf("%d", &q);
switch (q) {
case 0:
menu();
goto P;
case 1:
menu1();
goto P;
case 2:
menu2();
goto P;
case 3:
menu3();
goto P;
case 4:
menu4();
goto P;
}
return 0;
}
void menu()
{
printf("请选择1-4\n");
}
void menu1()
{
int main()
{
int i,get,j=0;
double sum=0,num[21];
for(i=1;i<30;i++)
{
scanf("%d",&get);
if(get==999)break;
num[i]=get;
sum=sum+get;
j++;
}
printf("ave=%.2lf\n",sum/j);
for(i=1;i<=j;i++)
{
if(num[i]<sum/j)
{
printf("%6.1lf",num[i]);
}
}
return 0;
}
printf("选择menu1\n");
}
void menu2()
{
#define M 30
int main()
{
int a[M];
int i,x;
for (i=0;a[i-1]!=999;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
for (i=0;a[i-1]!=999;i++)
{
if (a[i]==x)
{
printf("The index of %d is %d\n", x, i);
break;
}
}
if (a[i-1]==999)
{
printf("There is not %d\n", x);
}
return 0;
}
printf("选择menu2\n");
}
void menu3()
{
int main ()
{
int n[30],a,b,c,d,e,i;
a=b=c=d=e=0;
printf("Enter n[i]:");
for(i=0;n[i-1]!=999;i++)
scanf("%d",&n[i]);
for (i=0;n[i]!=999;i++)
{
if(n[i]>90)
{
a=a+1;
}
else if((n[i]>=80)&&(n[i]<=90))
{
b=b+1;
}
else if((n[i]>=70)&&(n[i]<80))
{
c=c+1;
}
else if((n[i]>=60)&&(n[i]<70))
{
d=d+1;
}
else if((n[i]<60)&&(n[i]>0))
{
e=e+1;
}
else(n[i-1]!=999);
{
printf("error");
}
}
printf("优%d\n: 良%d\n 中%d\n 及格%d\n 不及格%d\n",a,b,c,d,e);
return 0;
}
printf("选择menu3\n");
}
void menu4()
{
int main()
{
float score,max,min;
scanf("%f",&score);
max=score;
min=score;
while(score!=999)
{
if(score>max)
max=score;
if(score<min)
min=score;
scanf("%f",&score);
}
printf("最高成绩为:%f\n最低成绩为:%f\n",max,min);
return 0;
}
printf("选择menu4\n");
}
但运行结果是
希望可以解答一下
不能在自己写的函数里面写main函数,一个程序只能有一个main函数
还有宏定义最好写在开头,我又改了一下
#include <malloc.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define M 30
void menu();
void menu1();
void menu2();
void menu3();
void menu4();
//主函数
int main() {
int q;
p:
menu();
printf("请选择您所需要的功能:\n");
scanf("%d", &q);
switch (q) {
case 0:
menu();
goto P;
case 1:
menu1();
goto P;
case 2:
menu2();
goto P;
case 3:
menu3();
goto P;
case 4:
menu4();
goto P;
}
return 0;
}
void menu()
{
printf("请选择1-4\n");
}
void menu1()
{
int i, get, j = 0;
double sum = 0, num[21];
for (i = 1; i < 30; i++)
{
scanf("%d", &get);
if (get == 999)break;
num[i] = get;
sum = sum + get;
j++;
}
printf("ave=%.2lf\n", sum / j);
for (i = 1; i <= j; i++)
{
if (num[i] < sum / j)
{
printf("%6.1lf", num[i]);
}
}
printf("选择menu1\n");
}
void menu2()
{
int a[M];
int i, x;
for (i = 0; a[i - 1] != 999; i++)
{
scanf("%d", &a[i]);
}
scanf("%d", &x);
for (i = 0; a[i - 1] != 999; i++)
{
if (a[i] == x)
{
printf("The index of %d is %d\n", x, i);
break;
}
}
if (a[i - 1] == 999)
{
printf("There is not %d\n", x);
}
printf("选择menu2\n");
}
void menu3()
{
int n[30], a, b, c, d, e, i;
a = b = c = d = e = 0;
printf("Enter n[i]:");
for (i = 0; n[i - 1] != 999; i++)
scanf("%d", &n[i]);
for (i = 0; n[i] != 999; i++)
{
if (n[i] > 90)
{
a = a + 1;
}
else if ((n[i] >= 80) && (n[i] <= 90))
{
b = b + 1;
}
else if ((n[i] >= 70) && (n[i] < 80))
{
c = c + 1;
}
else if ((n[i] >= 60) && (n[i] < 70))
{
d = d + 1;
}
else if ((n[i] < 60) && (n[i] > 0))
{
e = e + 1;
}
else(n[i - 1] != 999);
{
printf("error");
}
}
printf("优%d\n: 良%d\n 中%d\n 及格%d\n 不及格%d\n", a, b, c, d, e);
printf("选择menu3\n");
}
void menu4()
{
float score, max, min;
scanf("%f", &score);
max = score;
min = score;
while (score != 999)
{
if (score > max)
max = score;
if (score < min)
min = score;
scanf("%f", &score);
}
printf("最高成绩为:%f\n最低成绩为:%f\n", max, min);
printf("选择menu4\n");
}