m0_52594097 2021-06-29 16:35 采纳率: 50%
浏览 98
已采纳

C语言,如何将结构体内容向后移动?

求解答,感谢,我尝试在结构体中插入新的信息,想的是1,输入指定位置;2,指定位置,和数组内4321的倒序循环,比较,就比如我输入插到第3个位置,循环会帮助我找到第三个位置,然后将第三个位置后包括第三个位置的结构体向后移动,但是我的结果是第三个新的信息替换掉了原来第三个位置的信息,请问如何成功将第三个位置的结构体向后移动一位

void InsertNew(){//指定位置插入新的学生信息
	int p=0,i;
    STU temp1={0};
	printf("Please enter the position where you want to insert the student information. \n"
		   "If you want to put the information in the first place, enter 1\n");
	scanf("%d",&p);//输入指定的位置

	for(i=NUM-2;i>=0;i--)
	{
		if(p <= stu[i].o){//循环实现,将指定内容后的数组内容向后移动一位
			stu[i+1]=stu[i];
		}
	
		else{//移动后将输入信息插入到指定位置
			break;
			}

	}

			printf("Please input student information:");
				
        	printf("Student ID(zy00*)\n");
	        scanf("%s",stu[p-1].id);
        	getchar();//Absorb extra line breaks
	        printf("name\n");
	        scanf("%s",stu[p-1].name);
        	printf("Please input the score of each subject\n");
        	stu[p-1].sum=0;
        	for(int j =0;j<3;j++)
			{
	        	scanf("%f",&stu[p-1].ach[j]);
	        	stu[p-1].sum +=stu[p-1].ach[j];
			}
		getch();
}	
  • 写回答

3条回答 默认 最新

  • zzuls 2021-06-29 17:06
    关注

    这个地方,你这样改一下

    for(i=NUM-2;i>=p-1;i--)
        {
            stu[i+1]=stu[i];
        }

    我理解的这个地方 NUM,指的是结构体总数+1

    如果你的NUM代表的是学生总数的话,这样改

    for(i=NUM-1;i>=p-1;i--)
        {
            stu[i+1]=stu[i];
        }                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

     

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

报告相同问题?

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法