vaghxc 2023-12-02 15:35 采纳率: 88.2%
浏览 3
已结题

求答疑 写三个函数分步处理问题

想知道左边调试栏中为什么a[i+1]=4200024,a[0]=10,a[c]=1,a[n]=10呢??

img

题目如下

img

还有我输入5 4 3 6 1 7 8 0 9 2的时候输出结果太离谱了,想知道为什么,还有怎么在自己写的函数中调用其他函数,如果后面的每个函数都要调用之前所有的函数的话,那么就要输入多次数据,想知道这个怎么解决呢??(如果不在主函数输入的话)

img

#include<stdio.h>
int shuru(int n)
{
    int a[n]; 
    printf("请输入数据:");
    for(int i=0;i<n;i++)
    scanf("%d",&a[i]);
}
int chuli(int c)
{
    int a[c];
    shuru(10);
    int min=0,max=0,m=0,n=0;
    for(int i=0;i<c;i++)
    {
        if(a[i]>a[i+1])
        min=a[i+1];
        else continue;
    }
    n=min;
    min=a[0];
    a[0]=n;
    for(int i=0;i<c;i++)
    {
        if(a[i]<a[i+1])
        max=a[i+1];
        else continue;
    }
    m=max;
    max=a[9];
    a[9]=m;
}
int shuchu(int n)
{
    int a[n];
    for(int i=0;i<n;i++)
    printf("%d ",a[i]);
}
int main()
{
    shuru(10);
    chuli(10);
    shuchu(10);
    return 0;
}


  • 写回答

2条回答 默认 最新

  • maxlzf 2023-12-02 16:23
    关注

    首先函数如果不内联速度是很慢的,调用一次函数,不执行任何操作,就已经花费了普通赋值等操作10倍以上的时间,其次函数一般要返回值的,这样嵌套调用函数才有操作意义,要么就用指针全局变量等返回值,然后函数中调用函数和在main函数中调用没啥区别,直接用就可以了。你上面的函数都没有返回你需要的值进行后面的操作,所以当然离谱了。

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

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 Marscode IDE 如何预览新建的 HTML 文件
  • ¥15 K8S部署二进制集群过程中calico一直报错
  • ¥15 java python或者任何一种编程语言复刻一个网页
  • ¥20 如何通过代码传输视频到亚马逊平台
  • ¥15 php查询mysql数据库并显示至下拉列表中
  • ¥15 freertos下使用外部中断失效
  • ¥15 输入的char字符转为int类型,不是对应的ascall码,如何才能使之转换为对应ascall码?或者使输入的char字符可以正常与其他字符比较?
  • ¥15 devserver配置完 启动服务 无法访问static上的资源
  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态