摆烂的李某人O.o 2022-12-08 17:01 采纳率: 100%
浏览 49
已结题

c++学生管理小程序


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string>
using namespace std;
struct student
{
    int n;
    string name;
    int score1;
    int score2;
    float all;
};
int main()
{
    student a[10];
    for (int i = 0; i < 10; i++)
    {
        scanf("%d %s %d %d", &a[i].n,&a[i].name,  &a[i].score1, &a[i].score2);
    }

    for (int i = 0; i < 10; i++)
    {
        a[i].all = a[i].score1 * 0.4 + a[i].score2 * 0.6;
    }
    for (int i = 0; i < 10; i++)
    {
        printf("%d %s %d %d %.2f", a[i].n, a[i].name, a[i].score1, a[i].score2, a[i].all);
        printf("\n");
    }
    return 0;
}

img


为什么输出的名字是乱码啊,是代码哪里有错误吗

  • 写回答

2条回答 默认 最新

  • 七月星辰八月雪 2022-12-08 17:07
    关注

    a[i].name 是string类型,
    %s是输出 char* 类型的
    不兼容。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 12月8日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日