Sasakisouji 2021-11-29 17:56 采纳率: 71.4%
浏览 18
已结题

带指针的分函数被跳过,不运行

题目要求在分函数中引用指针,但添加指针后不是指针调用冲突就是直接不运行。
题目大意:随机生成数组,分函数调用指针返回最大值和最小值。


#include"stdio.h"
#include"stdlib.h"

int *a;int n;int *max=0;int *min=0;int b[10];int s=1,d=1;

void fun(int *a,int n,int s,int d);

int main()
{
    a=b;
    for(n=0;n<10;n++)
        *(a+n)=rand()%100;
    printf("生成的随机数为:");
    for(n=0;n<10;n++)
        printf(" %d",*(a+n));
    putchar('\n\n');
    printf("数组最大数为:");
    fun(a,n,s,d);
    printf("%d\n数组最小数为:%d\n",s,d);
}

void fun(int *a,int n,int s,int d)
{
    
    for(n=1;n<10;n++)
    {
        if(*(a+n)>s)s=*(a+n);
        if(*(a+n)<d)d=*(a+n);
    }
}

添加的多余变量s,d是我在尝试修正,但是没有效果。
以上为编写的代码,望指正。

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-11-29 19:42
    关注

    修改如下,供参考对照:

    #include"stdio.h"
    #include"stdlib.h"
    void fun(int *a,int n,int *s,int *d);
    int main()
    {
        int b[10],*a,n,max=0,min=0;
        a=b;
        for(n=0;n<10;n++)
            *(a+n)=rand()%100;
        printf("生成的随机数为:\n");
        for(n=0;n<10;n++)
            printf(" %d",*(a+n));
        printf("\n\n");
        //putchar('\n\n');
    
        fun(a,10,&max,&min);
        printf("数组最大数为:%d,数组最小数为:%d\n",max,min);
        //printf("%d\n数组最小数为:%d\n",s,d);
        return 0;
    }
    void fun(int *a,int n,int *s,int *d)
    {
        int i;
        *s=*a;*d=*a;
        for(i=0;i<n;i++)
        {
            if(*(a+i)>*s)*s=*(a+i);
            if(*(a+i)<*d)*d=*(a+i);
        }
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月7日
  • 已采纳回答 11月29日
  • 创建了问题 11月29日

悬赏问题

  • ¥30 关于用python写支付宝扫码付异步通知收不到的问题
  • ¥50 vue组件中无法正确接收并处理axios请求
  • ¥15 隐藏系统界面pdf的打印、下载按钮
  • ¥15 MATLAB联合adams仿真卡死如何解决(代码模型无问题)
  • ¥15 基于pso参数优化的LightGBM分类模型
  • ¥15 安装Paddleocr时报错无法解决
  • ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
  • ¥50 分布式追踪trace异常问题
  • ¥15 人在外地出差,速帮一点点
  • ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改