问答详情
源自:4-2 分支结构之简单if-else语句

求教,我的哪里错了

#include <stdio.h>
int main() 
{   char aa;
    int year = 2014; //今年是2014年
    //补全一下代码
    if(year%4==0)
    {
        aa='闰';
    }
    else
    {
        aa='平';
    }
    printf("今年是%c年",aa);
    return 0;
}


提问者:无名氏_ 2015-08-02 16:39

个回答

  • 堕天使008
    2015-08-03 01:17:52
    已采纳

    C语言中 一个 char 为一个字节 也就说最多能表示 256个字母,所以ASCII的编码表只有256字符,然而中文可不是一个字节能搞定的。所以你不能直接将一个汉字赋值给一个char 类型。

    然而 我记得 好像用scanf 可以给一个char 赋值汉字。

    说实在的我觉得 char 只有一个字节完全是因为老外用英文, 他们最多用 大小写72个字母、10个数字加20个左右的常用符号,一个最小单位256他们都富富有余了。

  • 堕天使008
    2015-08-03 21:51:59

    回复 无名氏_:scanf 的格式和 printf 的几乎一样。

    scanf("%c",&c);   //引号中为输入数据的格式,之后的参数为要被赋值的变量的存储的地址, &c的含义为 c变量所在的 内存地址
    printf("%c",c);   //引号中为输出数据的格式,之后的参数为要输出变量所对应的值。


  • 无名氏_
    2015-08-02 16:48:49

    不考虑闰年的概念,输出是错的;

    系统输出{今年是?年}