题目地址:https://www.patest.cn/contests/gplt/L1-030
思路:用一个结构体,储存性别和名字,从第一个人i到n/2,查找其应帮助的异性同学,也即从最后查找到自己的位置(应该也查找到n/2也行)。找到则输出,删除该同学。
注意点:
(1)查找位置的起始点和终点。
(2)注意找到了异性同学,应该删除该同学。
1 #include<stdio.h> 2 int main() 3 { 4 struct student{ 5 int ge; 6 char na[10]; 7 }; 8 struct student st[50]; 9 int n,i,j; 10 scanf("%d",&n); 11 for(i=0;i<n;i++)scanf("%d %s",&st[i].ge,st[i].na); 12 for(i=0;i<n/2;i++) 13 { 14 for(j=n-1;j>i;j--){ 15 if(st[i].ge!=st[j].ge&&st[j].ge!=2){ 16 printf("%s %s\n",st[i].na,st[j].na); 17 st[j].ge=2; 18 goto next; 19 } 20 } 21 next:; 22 } 23 return 0; 24 }