首页 > 解决方案 > 我的嵌套 if 语句有什么问题?

问题描述

我正在用 C 语言编写一个简单的程序,它读取给定的字符串数组(chapeu)并使用一些条件来生成另一个字符串数组的元素(resposta)。第二个数组也使用它自己的一些元素来制作新元素。

我写的:

char chapeu[4][7] = {"branco","preto","branco","preto"};
char resposta[4][7];
int i;

for(i=0;i<4;i++)
{
    if(i==0)
    {
        if(chapeu[1]==chapeu[2])
        {
            strcpy(resposta[i],chapeu[3]);
        }
        else 
        {
            strcpy(resposta[i],chapeu[2]);
        }
    }
    
    else if(i==1)
    {
        if(chapeu[2]=="branco")
        {
            strcpy(resposta[1],"preto");
        }
        else 
        {
            strcpy(resposta[i],"branco");
        }
    }
    
    else if(i==2)
    {
        if(resposta[0]==resposta[1])
        {
            if(resposta[0]=="branco")
            {
                strcpy(resposta[i],"preto");
            }
            else 
            {
                strcpy(resposta[i],"branco");
            }
        }
        else 
        {
            strcpy(resposta[i],resposta[1]);
        }
    }
    
    else
    {
        strcpy(resposta[i],resposta[0]);
    }
}

for(i=0;i<4;i++)
{
    printf("resposta[%d] = %s e chapeu[%d] = %s\n",i,resposta[i],i,chapeu[i]);
}

我期望的输出是:

resposta[0] = branco e chapeu[0] = branco

resposta[1] = preto e chapeu[1] = preto

resposta[2] = branco e chapeu[2] = branco

resposta[3] = branco e chapeu[3] = preto

我得到的输出是:

resposta[0] = branco e chapeu[0] = branco

resposta[1] = branco e chapeu[1] = preto

resposta[2] = branco e chapeu[2] = branco

resposta[3] = branco e chapeu[3] = preto

这一定是一个愚蠢的错误,但我找不到它。任何人都可以帮忙吗?

标签: cif-statementnested

解决方案


推荐阅读