题目网址:https://pintia.cn/problem-sets/994805046380707840/exam/problems/1649748772841508868?type=7&page=0
题目直达站
思路:建立一个一维数组存颜色 二维数组存结果,二维数组的每一行去分析对/错的条件,本做法分析的是错的条件,即定义flag=0 如果错了就flag==1,最后如果flag=1 就是“Aiya” 否则就是“Dajiang。”
#include<stdio.h>
int main()
{
int n,k,i,j,num[1000],baby[20][1000],count[1000]={0},flag[1000]={0},c=0;
scanf("%d",&n);
for(j=0;j<n;j++)
{
scanf("%d",&num[j]);//存储颜色
}
scanf("%d",&k);
for(i=0;i<k;i++)//列
{
for(j=0;j<n;j++)//行
{
scanf("%d",&baby[i][j]); //存储判断
}
}
for(i=0;i<k;i++)//列
{
for(j=0;j<n;j++)//行
{
if(baby[i][j]!=num[j]&&baby[i][j]!=0)//就是指判断错误的情况(如2判断1,1判断2)
{
flag[i]=1;
break;
}
if(baby[i][j]==0)
{
c++;//定义一个计数器,如果每一个都是0,即视为都不猜
}
if(c==n)
flag[i]=1;
}
c=0;//计数器重置
}
for(i=0;i<k;i++)
{
if(flag[i]==0)
printf("Da Jiang!!!\n");
else printf("Ai Ya\n");
}
return 0;}
看完后可以去PTA尝试一下自己做 感觉个人做的方法还是有些繁琐,可以在下边写出更简单的方法。