m0_59999817 2021-09-05 12:31 采纳率: 66.7%
浏览 20
已结题

哪位看一下,为啥这个代码没有输出结果

typedef struct
{
int arr[maxsize];
int len;

}stu;
stu s;
void insert(int val)
{
for(int i=0;i<s.len;i++)
{
s.arr[i]=val;
}
}
void change(int data,int val)
{
for(int i=0;i<s.len;i++)
{
if(s.arr[i]==val)
{
s.arr[i]=data;
}
}
}
void del(int data)
{
for(int i=0;i<s.len;i++)
{
if(s.arr[i]==data)
{
for(int n=i;n<s.len;n++)
{
s.arr[n]=s.arr[n+1];
}
}
}
s.len--;
}
void find(int data)
{
for(int i=0;i<s.len;i++)
{
if(s.arr[i]==data)
{
printf("下标 %d 值为 %d",i,s.arr[i]);
}
}
printf("\n");
}
void print(stu s)
{
for(int i=0;i<s.len;i++)
{
printf("%d ",s.arr[i]);
}
printf("\n");
}
int main()
{
insert(1);
print(s);
change(34,5);
print(s);
del(6);
print(s);
find(7);
print(s);
return 0;
}

  • 写回答

1条回答 默认 最新

  • Pliosauroidea 2021-09-05 12:38
    关注

    稍微调了一下
    你没初始化s.len,导致s.len一直是0,所以没有任何输出
    有帮助望采纳

    #include <stdio.h>
    typedef struct
    {
        int arr[100];
        int len;
    
    } stu;
    stu s;
    
    void insert(int val)
    {
        for (int i = 0; i <val; i++)
    
        {
            s.arr[i] = i;
        }
    }
    void change(int data, int val)
    {
        for (int i = 0; i < s.len; i++)
        {
            if (s.arr[i] == val)
            {
                s.arr[i] = data;
            }
        }
    }
    void del(int data)
    {
        for (int i = 0; i < s.len; i++)
        {
            if (s.arr[i] == data)
            {
                for (int n = i; n < s.len; n++)
                {
                    s.arr[n] = s.arr[n + 1];
                }
            }
        }
        s.len--;
    }
    void find(int data)
    {
        for (int i = 0; i < s.len; i++)
        {
            if (s.arr[i] == data)
            {
                printf("下标 %d 值为 %d", i, s.arr[i]);
            }
        }
        printf("\n");
    }
    void print(stu s)
    {
        for (int i = 0; i < s.len; i++)
        {
            printf("%d ", s.arr[i]);
        }
        printf("\n");
    }
    int main()
    {
        s.len = 100;
        insert(100);
        printf("%d\n", s.len);
        print(s);
        change(34, 5);
        print(s);
        del(6);
        print(s);
        find(7);
        print(s);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月13日
  • 已采纳回答 9月5日
  • 创建了问题 9月5日

悬赏问题

  • ¥15 爬虫爬取网站的一些信息
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含
  • ¥15 麒麟V10桌面版SP1如何配置bonding
  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错