C语言出现乱码

#include <stdio.h>
#include <stdlib.h>

int main()
{
float a,b,c=0;
char d=0;
printf("请输入你的姓名:\n");
scanf("%s",&d);
printf("请输入你的年龄:\n");
scanf("%d",&a);
printf("请输入你的身高m:\n");
scanf("%f",&b);
printf("请输入你的体重kg:\n");
scanf("%f",&c);
return 0;
}

应该出现的中文变成一串乱码,要怎么解决

有两个问题:

一、变量a是float型,用%d输入输出会出错,可以考虑把变量d定义成int型;

二、姓名是字符串,不是字符,可以考虑用字符数组来存储。

修改如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{    
    int a;
    float b,c;
    char d[10];
    printf("请输入你的姓名:\n");
    gets(d);
    printf("请输入你的年龄:\n");
    scanf("%d",&a);
    printf("请输入你的身高m:\n");
    scanf("%f",&b);
    printf("请输入你的体重kg:\n");
    scanf("%f",&c);    //以下代码测试输入的正确性
    printf("姓名:%s\n",d);
    printf("年龄:%d\n",a);
    printf("身高:%.2fm\n",b);
    printf("体重:%.2fkg\n",c);
    return 0;
}追问

按照你这个复制过去后还是有乱码

追答

从网页复制中文字符到c语言编辑器可能会出现乱码,中文内容可以考虑自己输入。

追问

中文全部自己输入后还是乱码

追答

换个IDE吧

追问

怎么换?

追答

下载安装别的ide,比如codeblocks或者c-free

追问

我用的就是codeblocks

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-10-06
#include <stdio.h>
#include <stdlib.h>

int main()
{
float a,b,c=0;
char d[100];
printf("请输入你的姓名:\n");
scanf("%s",d);
printf("请输入你的年龄:\n");
scanf("%d",&a);
printf("请输入你的身高m:\n");
scanf("%f",&b);
printf("请输入你的体重kg:\n");
scanf("%f",&c);
return 0;
}追问

还是有乱码

追答

输出和代码没关系,是你的执行环境的字符集不支持

追问

那怎么解决

追答

修改编译器选项或换编译器

追问

不会弄,完全新手,有没有具体操作

第2个回答  2018-06-23

看来我和你的问题差不多应该也是编程环

境类不支持

相似回答