c语言if函数的问题 为什么输出zslsb不能输出j++ 输入的是对的也判断成错的

如题所述

第1个回答  2016-08-21
字符串的比较有问题,不能用等号,那是在比较内存地址,要用strcmp函数比较
第2个回答  2016-08-21
/*你的代码问题很多,给你重新写了个,你可以参考下*/
#include <stdio.h>
#include <string.h>

int main(void)
{
    char h1[6] = "zslsb";
    int j = 0;
    
    printf("请输入10遍\"zslsb\".\n"); 
    while(j < 10)
    {
        printf("第%d遍:",j+1);
        while(1)  //输入不对则会一直循环;
        {            
            scanf(" %s",h1);
            if(strcmp("zslsb",h1) != 0)  //调用strcmp函数对比两个字符串是否相等;
                printf("输入错误请重新输入第%d遍:",j+1);
            else
                break; 
        }
        ++j;
    }
    
    return 0;
}

本回答被提问者采纳
相似回答