鱼C论坛

 找回密码
 立即注册
查看: 1591|回复: 5

代码问题

[复制链接]
发表于 2021-11-5 17:50:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>

void minmax(int a[], int len, int *min,int *max);
int main(void)
{
        int a[] = { 1,2,3,4,5,6,7,8,9,12,13,14,16,17,21,23,55, };
        int min, max;
        minmax(a, sizeof(a) / sizeof(a[0]), &min, &max);
        printf_s("min=%d,max=%d\n", min, max);

        return 0;
}

void minmax(int a[], int len, int* min, int* max)
{
        int i;
        *min = *max = a[0];
        for (i = 1; i < len; i++) {
                [i]if (a < *min) {
[i]                        *min = a;
                }
                if (a[i] > *max) {
                        *max = a[i];
                }
        }
}
这段代码中加粗的这块是不是可以省掉?
感觉没啥用

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-5 18:01:05 | 显示全部楼层
省略后,怎么得到最小
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-5 18:06:32 | 显示全部楼层
jhq999 发表于 2021-11-5 18:01
省略后,怎么得到最小

最小的不就是*min=a[0]吗?
反正他每次都不满足括号里面的条件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 18:07:49 | 显示全部楼层
本帖最后由 jhq999 于 2021-11-5 18:12 编辑
gjfyyds 发表于 2021-11-5 18:06
最小的不就是*min=a[0]吗?
反正他每次都不满足括号里面的条件


a[]={2,3,1,4,5};a[0]是最小的吗?不要把自己聪明的脑瓜代入计算机,计算机很笨,只不过很快而已
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 18:46:21 | 显示全部楼层
本帖最后由 jackz007 于 2021-11-5 18:48 编辑

        代码有错误,试试这我修改过的函数
void minmax(int a[], int len, int* min, int* max)
{
        int i                       ;
        * min = * max = a[0]        ;
        for (i = 1 ; i < len ; i++) {
                if(a[i] < * min)  {
                       * min = a[i] ;
                } else if(a[i] > * max) {
                       * max = a[i] ;
                }
        }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-5 19:00:10 | 显示全部楼层
#include <stdio.h>

void minMax(int arr[], int size, int* min, int* max);

int main()
{
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 16, 17, 21, 23, 55};
    int min, max;
    minMax(arr, sizeof(arr)/sizeof(arr[0]), &min, &max);
    printf("min = %d\nmax = %d", min, max);
    return 0;
}

void minMax(int arr[], int size, int* min, int* max){
    *min = 32767;
    *max = -32767;
    for(int i = 0; i < size; i++){
        *min = *min > arr[i] ? arr[i] : *min;
        *max = *max < arr[i] ? arr[i] : *max;
    }
}
min = 1
max = 55
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-22 04:05

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表