m0_62267751 2021-12-20 19:49 采纳率: 85.7%
浏览 9
已结题

C语言静态数组插入数据后 为什么删除时无论删除哪一个,都只是把第一个数据删除,并且最后还保留了一位,请看运行结果图


#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct Cate
{
    int No;
    char Name[30];
};
int main() {
    struct Cate ca[10] =
    {
        {1,"Starter"},
        {2,"Curries"},
        {3,"Barbecues"}
    };
    char str[100] = { 0 };
    int i = 3;
    int n;
    do {
        printf("Input:");
        scanf("%s", str);
        strcpy(ca[i].Name, str);
        ca[i].No = i + 1;    
        printf("%s\n", ca[i].Name); 
        printf("%d\n", ca[i].No); 
        i++;
        printf("Enter n:");
        scanf("%d", &n);  
    } while (n == 1);//当n不等于1时停止插入数据
    int j = 0;
    for (j = 0; j < i; j++)
    {
        printf("%d\t%s\n", ca[j].No, ca[j].Name);//显示当前的数据
    }
    printf("Input:");
    int M;
    scanf("%d", &M);//输入想删除数据的编号
    for(int k=0;k<i;++k)
    {
        if(ca[k].No=M)
        {
            ca[k]=ca[k+1];//让下一位数据替换上一位    
        }
    }
    for (j = 0; j < i; j++)
    {
        printf("%d\t%s\n", ca[j].No, ca[j].Name);
    }
    return 0;
}

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月28日
    • 修改了问题 12月20日
    • 创建了问题 12月20日

    悬赏问题

    • ¥60 iinfercnv 肿瘤进化树
    • ¥15 如何入门学习c语言,单片机
    • ¥15 idea 编辑语言的选择
    • ¥15 Windows下部署Asmjit
    • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
    • ¥15 微信小程序 前端页面内容搜索
    • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
    • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
    • ¥30 java spring boot2.5.3版本websocket连不上
    • ¥15 angular js调外部链接查看pdf