萌新sjsndh 2022-03-02 08:30 采纳率: 100%
浏览 44
已结题

后输入的数据覆盖了前一次的数据

这个代码虽然没问题,但是第二次输入的数据就会覆盖之前的那一个,但是我想将他们连接在一起,
就是两个一起输出而不是覆盖
我该怎么改呢
就是第一次全输入1,然后打印,然后选“y”
然后全输入2,这样第二次只会全部打印2,但是我想11111111和22222222都有

 
#include<stdio.h>
#include<stdlib.h>
struct course *head1;
struct  course
{
    int bianhao;//编号
    char mingcheng[20];// 名称
    char xingzhi[20];//性质
    int xueshi;//学时
    int xueqi;//学期
    int zongrenshu;//总人数
    int yixuanrenshu; //已选人数
    char jiaoshi[20];
    char leixing[20];
    struct course * next;
};
int main()
{
    start:;
    int a;
    struct course *p,*p1;
    p=(struct course*)malloc(sizeof(struct course));
    printf("课程性质中,分为文科类和理科类\n类型中,分为必修、限选、实践、实习\n");
    printf("课程编号\t课程名称\t课程性质\t学时\t学期\t可选人数\t主讲教师\t类型\t\n");
    scanf("%d %s %s %d %d %d %s %s",&p->bianhao,p->mingcheng,p->xingzhi,&p->xueshi,&p->xueqi,&p->zongrenshu,p->jiaoshi,p->leixing);
    p->yixuanrenshu=0;
    p->next=NULL;
    head1=p;
    printf("是否继续录入?1代表yes,2代表no\n");
    scanf("%d",&a);
    switch(a)
    {
    case 1:
    {
        do
        {
            p1=(struct course*)malloc(sizeof(struct course));
            p->next=p1;
            printf("请输入\n");
            scanf("%d %s %s %d %d %d %s %s",&p1->bianhao,p1->mingcheng,p1->xingzhi,&p1->xueshi,&p1->xueqi,&p1->zongrenshu,p1->jiaoshi,p1->leixing);
            p1->next=NULL;
            p1->yixuanrenshu=0;
            printf("是否继续录入?1代表yes,2代表no\n");
            scanf("%d",&a);
           // p=p->next;
        }
        while(a==1);
        break;
    }
    case 2:
        break;
    default:
        break;
    }
    printf("编号\t名称\t性质\t学时\t学期\t已选\t总人数\t教师\t类型\n");
    while(p!=NULL)
    {
        printf("%d\t%s\t%s\t%d\t%d\t%d\t%d\t%s\t%s\n",p->bianhao,p->mingcheng,p->xingzhi,p->xueshi,p->xueqi,p->yixuanrenshu,p->zongrenshu,p->jiaoshi,p->leixing);
        p=p->next;
    }
    printf("是否继续输入?y or n");
    char c;
    scanf("%s",&c);
    if (c=='y');
    goto start;
    
}
 

  • 写回答

2条回答 默认 最新

  • 一只蚂蝼 2022-03-02 10:12
    关注

    goto跳转的位置有问题,应该在局部初始化之后

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

报告相同问题?

问题事件

  • 系统已结题 3月10日
  • 已采纳回答 3月2日
  • 创建了问题 3月2日

悬赏问题

  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog