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 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境