想用二重数组来对国家进行统计,便于后面对国家奖牌数的统计
但在试运行代码的时候,总是会直接跳回了菜单界面
下面是出问题的部分和主函数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
struct yundongyuan
{
char country[15];
char event[10];
char name[30];
float score;
int rank;
int G;
int S;
int B;
};
int tianjia(char arr[],char b[][15],int n)
{
int i;
if(n=0)
{
b[0]=arr;
n=n+1;
return n;
}
for(i=0;i<n;i++)
{
if(strcmp(b[i],arr)==0)
{
return n;
}
else if(strcmp(b[i],arr)!=0 && i=n-1)
{
b[n]=arr;
n=n+1;
return n;
}
}
}
int tongji1(struct yundongyuan arr[],char b[][15],int n,int m)//创建的时候用二维数组
{
int x,y,z;//x为金牌数,y为银牌数,z为铜牌数
for(m=0;b[m]!='\0';m++)
{
for(n=0;arr[n].country!='\0';n++)
{
if(strcmp(arr[n].country,b[m])==0)
{
if(arr[n].rank==1)
x=x+1;
else if(arr[n].rank==2)
y=y+1;
else if(arr[n].rank==3)
z=z+1;
}
}
printf("%d %d %d",x,y,z);
}
return 0;
}
int add_yundongyuan(struct yundongyuan arr[],int n) //添加联系人函数
{
system("cls"); //清屏
printf("请输入项目名称:");
scanf("%s",arr[n].event);
printf("请输入运动员姓名:");
scanf("%s",arr[n].name);
printf("请输入运动员国籍:");
scanf("%s",arr[n].country);
printf("请输入运动员成绩:");
scanf("%f",&arr[n].score);
printf("请输入运动员的排名:");
scanf("%d",&arr[n].rank);
printf("添加成功!\n");
system("pause"); //暂停界面
return n+1;
}
int main()
{
system("cls");
int choice;
int num=0;
int num1=0;
char s[10][15];
struct yundongyuan per[100];
do
{
choice=menu();
switch(choice)
{
case 1:
num=add_yundongyuan(per,num);
num1=tianjia(arr[num-1].country,s,num1);
break;
case 2:
delete_yundongyuan(per,num);
break;
case 3:
modify_yundongyuan(per,num);
break;
case 4:
tongji(per,s,num,num1);
break;
case 5:
search_yundongyuan_event(per,num);
break;
case 6:
rank_yundongyuan_country(per,num);
print_yundongyuan(per,num);
system("pause");
break;
case 7:
rank_yundongyuan_event(per,num);
system("pause");
break;
case 0:
printf("\t谢谢使用!\n");
exit(0);
}
}while(choice!=0);
return 0;
}
说一说你运行到哪一步会跳到主界面啊
20行if(n=0) 改为 if(n==0)啊
32行else if(strcmp(b[i],arr)!=0 && i=n-1)
最后是i==n-1吧