这两个程序有什么不一样的吗?第一个是对的,第二个我改的和第一个差不多,还是错了。
#include<stdio.h>
int main(){
int t;
scanf("%d",&t);
getchar();
while(t--){
int f=1;
char a[12], b[8], c[4];
gets(a);
gets(b);
gets(c);
int cnt[4][3];
for(int i=0;i<4;i++){
cnt[i][0]=cnt[i][1]=cnt[i][2]=0;
}
for(int i = 0; i < 12; i ++)
{
if(a[i] == 'G')
cnt[i % 4][0] ++;
else if(a[i] == 'R')
cnt[i % 4][1] ++;
else
cnt[i % 4][2] ++;
}
for(int i = 0; i < 8; i ++)
{
if(b[i] == 'G')
cnt[i % 4][0] ++;
else if(b[i] == 'R')
cnt[i % 4][1] ++;
else
cnt[i % 4][2] ++;
}
for(int i = 0; i < 4; i ++)
{
if(c[i] == 'G')
cnt[i % 4][0] ++;
else if(c[i] == 'R')
cnt[i % 4][1] ++;
else
cnt[i % 4][2] ++;
}
for(int i=0;i<4;i++){
if(cnt[i][0] != 3 || cnt[i][1] != 2 || cnt[i][2] != 1){
f=0;
break;
}
}
if(f)printf("YES\n");
else printf("NO\n");
}
}
逻辑看着没啥问题,问题可能出在读取数据的地方,把getchar()删掉,gets(a)、gets(b)、gets(c)改成scanf读取试一下,如下:
int main()
{
int t;
scanf("%d", &t);
//getchar(); //注释掉
while (t--)
{
int f = 1;
char a[13] = { 0 }, b[9] = { 0 }, c[5] = { 0 }; //这里初始化一下
scanf("%s %s %s", a, b, c); //改成用scanf读取
int cnt[4][3] = { 0 };
//....
}
}
题目是什么,没有说,代码你贴出个文字的也好啊,还有怎么不对也没说。
参考GPT和自己的思路:
根据提供的代码截图,可以看到第一个程序是在一个循环中打印出乘法表,而第二个程序是直接输出了一个数的乘法表。因此,两个程序的代码不同。可能是在第二个程序修改过程中出现了错误,具体错误需要进一步的分析与调试。
新手老爱把差不多挂在嘴边上
什么时候你能把到底差在哪搞清楚,你就算入门了
吃完了拉和拉完了吃看起来也差不多,但是实际上差多了