| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1028 人关注过本帖
标题:一段求数组最大值最小值的的代码,无论数组中输入的数是多少,为什么数组中 ...
只看楼主 加入收藏
panfeng415
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2015-2-7
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:4 
一段求数组最大值最小值的的代码,无论数组中输入的数是多少,为什么数组中的第九个数总是1呢,找不出问题,求交流
#include <stdio.h>
void minmax(int number[],int *cnt,int *min,int *max);
int main ()
{
    printf("请输入一组数字非零整数(输入0代表结束),我来帮你找最大值和最小值\n");
    int i,j;
    int x;
    int cnt=1;
    int number[cnt];
    scanf("%d",&x);
    for(i=0;i<cnt;i++)
    {
        
        if (x!=0)
        {
            number[i]=x;
            cnt++;
            scanf("%d",&x);
        }
        else
        {
             continue;
        }
    }
    //将输入的数存入合适大小的数组中
    printf("%d\n",cnt);
    for (j=0;j<cnt-1;j++)
    {
        printf("%d\t",number[j]);   
    }
    //检查存入是否正确

    int max=number[0];
    int min=number[0];
    minmax(number,&cnt,&min,&max);
    printf ("max=%d,min=%d",max,min);
   
    return 0;
     
}
void minmax(int number[],int *cnt,int *min,int *max)
{
    int i;
    //int *pmin;
    //int *pmax;
    //int *pcnt;
     //int n = *cnt;
    for(i=1;i<*cnt-1;i++)
    {
       if(number[i]<*min)
        {
            *min=number[i];
        }
        if(number[i]>*max)
        {
            *max=number[i];
        }
        
    }
}
    //定义找出数组中最大最小值得函数
搜索更多相关主题的帖子: continue include number 最大值 
2015-03-16 19:03
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
你的数组定义的很奇怪

一片落叶掉进了回忆的流年。
2015-03-16 19:06
panfeng415
Rank: 1
等 级:新手上路
帖 子:13
专家分:4
注 册:2015-2-7
收藏
得分:0 
回复 2楼 诸葛欧阳
是说数组的大小是个变量吗?可是不确定用户会输入多少数的时候,无法给定数组的大小呢
2015-03-16 19:19
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:8 
程序代码:
/* 用支持c99标准的编译器编译 */
#include <stdio.h>
#define MAX(a, b) (a) > (b) ? (a) : (b)
#define MIN(a, b) (a) < (b) ? (a) : (b)

int main(void) {
    int i = 0, n, max, min;

    printf("输入数组的大小: n = ");

    if(scanf("%d", &n) != 1) return 1;

    int a[n];

    printf("依次输入数组各元素的值: ", i);

    if(scanf("%d", a + i) != 1) return 1;

    max = min = a[i];

    while(++i < n) {
        if(scanf("%d", a + i) != 1) return 1;

        else {
            max = MAX(max, a[i]);
            min = MIN(min, a[i]);
        }
    }

    printf("MIN = %d\nMAX = %d\n", min, max);
    return 0;
}


Only the Code Tells the Truth             K.I.S.S
2015-03-16 19:51
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:8 
这个版本vc2013可以编译通过

程序代码:
#include <stdio.h>
#include <stdlib.h>
#define MAX(a, b) (a) > (b) ? (a) : (b)
#define MIN(a, b) (a) < (b) ? (a) : (b)
#define MALLOC(p, n, t)\
    if(!(p = malloc((n) * sizeof(t)))) {\
        fprintf(stderr, "malloc error...");\
        exit(EXIT_FAILURE);\
    }
#define FREE(p) if(p) free(p), p = NULL

int main(void) {
    int i = 0, n, max, min;

    printf("输入数组的的小: n = ");

    if(scanf("%d", &n) != 1) return 1;

    int *p;
    MALLOC(p, n, int);

    printf("依次输入数组各元素的值: ");

    if(scanf("%d", p + i) != 1) return 1;
    max = min = p[i];

    while(++i < n) {
        if(scanf("%d", p + i) != 1) return 1;

        else {
            max = MAX(max, p[i]);
            min = MIN(min, p[i]);
        }
    }

    printf("MIN = %d\nMAX = %d\n", min, max);

    FREE(p);
    return 0;
}

Only the Code Tells the Truth             K.I.S.S
2015-03-16 20:03
快速回复:一段求数组最大值最小值的的代码,无论数组中输入的数是多少,为什么数 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029337 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved