c语言能不能输出汉字我写的为什么输出的乱码呀

//目的随机抽取

#include <stdio.h>

#include<stdlib.h>

#include<time.h>

int main(){

int ab,bc,ac,d,e; //定义抽取内容

char a[]={"保科有希神户小鸟墨染希"};

char b[]={"clannadairkanon"};

char c[]={"古河渚神尾观玲月宫亚由"};

srand((int)time(NULL)); //定义随机种子

for(d=1;d<=10;d++) //使其抽取10次

{

e=rand()%10000; //判定数值为10000内选取

if(e<=600) //当数值为600以内时将从char a[]中随机抽取

{

ab=rand()%3;

if(ab==1)

{

printf("%c",a[1]); //理想输出保科有希

}else if(ab==2){

printf("%c",a[2]); //理想输出神户小鸟

}else{

printf("%c",a[3]); //理想输出墨染希

}

}else if(e>600&&e<=5400)

{

bc=rand()%3; //当数值为600<e<=5400将从char b[]中随机抽取

if(bc==1)

{

printf("%c",b[1]); //理想输出clannad

}else if(bc==2){

printf("%c",b[2]); //理想输出air

}else{

printf("%c",b[3]); //理想输出kanon

}

}else{ //当数值为e>5400时将从char c[]中随机抽取

ac=rand()%3;

if(ac==1)

{

printf("%c",c[1]); //理想输出古河渚

}else if(ac==2){

printf("%c",c[2]); //理想输出神尾观铃

}else{

printf("%c",c[3]); //理想输出月宫亚由

}

}

}

return 0;

}

中文是两个字符:printf("%c%c", a[ab2],a[ab2+1]);

修改如下,供参考:

//目的随机抽取
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() 
{
    int ab, bc, ac, d, e, i; //定义抽取内容
    char a[] = { "保科有希神户小鸟墨染希" };
    char b[] = { "clannadairkanon" };
    char c[] = { "古河渚神尾观玲月宫亚由" };
    srand((int)time(NULL)); //定义随机种子
    for (d = 1; d <= 10; d++) //使其抽取10次
    {
        e = rand() % 10000; //判定数值为10000内选取
        if (e <= 600) //当数值为600以内时将从char a[]中随机抽取
        {
            ab = rand() % 3;
            if (ab == 1)
            {
                for (i = 0; i < 8; i++)
                    printf("%c", a[i]); //理想输出保科有希
                printf("\n");
            }
            else if (ab == 2) {
                for (i = 8; i < 16; i++)
                    printf("%c", a[i]); //理想输出神户小鸟
                printf("\n");
            }
            else {
                for (i = 16; i < 22; i++)
                    printf("%c", a[i]); //理想输出墨染希
                printf("\n");
            }
        }
        else if (e > 600 && e <= 5400)
        {
            bc = rand() % 3; //当数值为600<e<=5400将从char b[]中随机抽取
            if (bc == 1)
            {
                for (i = 0; i < 7; i++)
                    printf("%c", b[i]); //理想输出clannad
                printf("\n");
            }
            else if (bc == 2) {
                for (i = 7; i < 10; i++)
                    printf("%c", b[i]); //理想输出air
                printf("\n");
            }
            else {
                for (i = 10; i < 16; i++)
                    printf("%c", b[i]); //理想输出kanon
                printf("\n");
            }
        }
        else { //当数值为e>5400时将从char c[]中随机抽取
            ac = rand() % 3;
            if (ac == 1)
            {
                for (i = 0; i < 6; i++)
                    printf("%c", c[i]); //理想输出古河渚
                printf("\n");
            }
            else if (ac == 2) {
                for (i = 6; i < 14; i++)
                    printf("%c", c[i]); //理想输出神尾观铃
                printf("\n");
            }
            else {
                for (i = 14; i < 22; i++)
                    printf("%c", c[i]); //理想输出月宫亚由
                printf("\n");
            }
        }
    }
    return 0;
}