方524 2022-12-29 19:56 采纳率: 66.7%
浏览 20
已结题

关于#c语言#的问题,如何解决?

只能输出两组printf scanf

#include<stdio.h>
struct Student
{
    char name[20];
    int num;
    float math;
    float english;
    float c;
 } student1;
 int main()
 {

    printf("请输入该学生的姓名:");
    scanf("%s",student1.name);
    printf("请输入该学生的学号:");
    scanf("%d",student1.num);
    printf("请输入该学生的高数成绩:");
    scanf("%f",student1.math);
    printf("请输入该学生的英语成绩:");
    scanf("%f",student1.english);
    printf("请输入该学生的c语言成绩:");
    scanf("%f",student1.c);
    printf("该学生的姓名为:%s",student1.num );
    printf("");
    return 0; 
 }

img

  • 写回答

3条回答 默认 最新

  • |__WhoAmI__| 2022-12-29 20:13
    关注

    在用于读取学生编号和成绩的scanf函数调用中,使用了错误的格式说明符。%d格式说明符用于读取整数,这是一种浮点类型。类似地,%f格式说明符用于读取浮点数,但使用它来读取学生名,这是一个字符串。

    #include<stdio.h>
    
    struct Student
    {
        char name[20];
        float num;
        float math;
        float english;
        float c;
     } student1;
    
    int main()
    {
     
        printf("请输入该学生的姓名:");
        scanf("%s",student1.name);
        printf("请输入该学生的学号:");
        scanf("%f",&student1.num);
        printf("请输入该学生的高数成绩:");
        scanf("%f",&student1.math);
        printf("请输入该学生的英语成绩:");
        scanf("%f",&student1.english);
        printf("请输入该学生的c语言成绩:");
        scanf("%f",&student1.c);
        printf("该学生的姓名为:%s", student1.name);
        printf("该学生的学号为:%.2f", student1.num);
        return 0; 
     }
    

    望采纳。

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

报告相同问题?

问题事件

  • 系统已结题 1月6日
  • 已采纳回答 12月29日
  • 创建了问题 12月29日