这两个程序有什么不一样的吗?第一个是对的。

这两个程序有什么不一样的吗?第一个是对的,第二个我改的和第一个差不多,还是错了。

img

img

img

img

#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和自己的思路:

根据提供的代码截图,可以看到第一个程序是在一个循环中打印出乘法表,而第二个程序是直接输出了一个数的乘法表。因此,两个程序的代码不同。可能是在第二个程序修改过程中出现了错误,具体错误需要进一步的分析与调试。

新手老爱把差不多挂在嘴边上
什么时候你能把到底差在哪搞清楚,你就算入门了
吃完了拉和拉完了吃看起来也差不多,但是实际上差多了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^