whiteky 2021-12-23 09:34 采纳率: 100%
浏览 36
已结题

为什么这个代码姓名不能输入三个及以上个汉字?

姓名不能输入过多字符,输入过多字符时程序会结束



```c
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

struct Student         //自定义结构体
{
    int      number;
    char     name[100];
    int      jidao;
    int      math;
    int      eng;
    int      com;
}stu[40];
int main()    //输入学生信息
{
    int n = 0;
    int i = 0;
    char  c;
    do
    {
        printf("\t\t\t学号:");
        scanf_s("\t\t\t%d", &stu[n + i].number);
        printf("\t\t\t姓名:");
        scanf_s("\t\t\t%s", &stu[n + i].name,sizeof(50));
        printf("\t\t\t计导分数:");
        scanf_s("\t\t\t%d", &stu[n + i].jidao);
        printf("\t\t\t高数分数:");
        scanf_s("\t\t\t%d", &stu[n + i].math);
        printf("\t\t\t外语(日语/英语)分数:");
        scanf_s("\t\t\t%d", &stu[n + i].eng);
        printf("\t\t\tC语言分数:");
        scanf_s("\t\t\t%d", &stu[n + i].com);
        i++;
        printf("\t\t\t继续录入成绩吗?\n");
        printf("\t\t\t请输入‘y’继续,或's'停止");
        scanf_s("\t\t\t%c", &c,10);
    } while (c == 'y');
    return (i + n);
}

```

  • 写回答

3条回答 默认 最新

  • qzjhjxj 2021-12-23 10:30
    关注

    printf("\t\t\t姓名:");
    scanf_s("\t\t\t%s", stu[n + i].name, sizeof(stu[0].name));
    //scanf_s("\t\t\t%s", &stu[n + i].name, sizeof(50));

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

报告相同问题?

问题事件

  • 系统已结题 12月31日
  • 已采纳回答 12月23日
  • 创建了问题 12月23日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度