| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1908 人关注过本帖
标题:各位 谁能帮小弟看一下 谢谢!
只看楼主 加入收藏
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
结帖率:90.91%
收藏
已结贴  问题点数:20 回复次数:12 
各位 谁能帮小弟看一下 谢谢!
利用一维数组和指针 指出输入数据中的 最大值 最小值 代码和错误信息在这 求赐教 小弟谢谢各位啦!
程序代码:
//利用冒泡排序和指针 指出一维数组中 最大值 最小值 
#include <stdio.h>
#include <conio.h>
int test(int [],int ,int *,int *);
int main()
{
   int i,n1=1,N=10; 
    int MAX,MIN; //最大/小数值
    int elemet[10];
    printf("请分别输入%d个数值:\n",N);
    for(i=0;i<N;i++)
       scanf("%d",&elemet[i]);
     printf("原数据:\n");
     for(i=0;i<N;i++)
     printf("%d.%d ",n1++,elemet[i]);
     test(elemet,N,&MAX,&MIN);//传递地址  
     printf("\nThe MAX number is:%d,The MIX number is:%d\n",MAX,MIN);
     getch();
int test(int elemet[],int N,int *MAX,int *MIN)
{
    int i,j,temp;
    for(j=0;j<=N-2;j++) //冒泡排序
      for(i=0;i<=N-j-1;i++){
        if(elemet[i]>elemet[i+1])//每两个数据交换 
         {
            temp=elemet[i];
            elemet[i]=elemet[i+1];
            elemet[i+1]=temp;
         }
      }
         *MAX=elemet[N-1];
         *MIN=elemet[0];
   return 0;
}
搜索更多相关主题的帖子: include 最大值 信息 
2015-04-09 16:54
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:4 
找个最大、最小数不需要排序,循环一次即可完成。
2015-04-09 17:03
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:4 
main()是不是少了个‘}’
test()里面的冒泡好混乱

人有多懒,编程就有多难。
2015-04-09 17:46
code力力
Rank: 5Rank: 5
来 自:宜昌
等 级:职业侠客
威 望:2
帖 子:215
专家分:338
注 册:2015-1-12
收藏
得分:4 
程序代码:
# include <stdio.h>
# define SIZE 10
int find_min(int *,int ,int *);
int find_max(int *,int ,int *);
void get_num(int *,int );

int main (void)
{
    int max,index_max;
    int min,index_min;
    int arr[SIZE];
    
    get_num(arr,SIZE);
    
    min=find_min(arr,SIZE,&index_min);
    max=find_max(arr,SIZE,&index_max);
    
    printf("最大数:arr[%d]=%d\n",index_max,max);
    printf("最小数:arr[%d]=%d\n",index_min,min);
    return 0;
}

void get_num(int *a,int len)
{
    int count=0;

    while(count<len)
    {
        while(1!=scanf("%d",a))
        
        {
            fputs("data input error! try again!\n",stderr);
            while(getchar()!='\n')
             ;
        }
        printf("还有%d个数待输入\n",len-count-1);
        a++;
        count++;
        
    }
    
}

int find_max(int *a,int len,int *pindex)
{
    
    int max=*a;
    int i;
    
    for(i=1;i<len;i++)
     if(*(a+i)>max)
      {
          max=*(a+i);
          *pindex=i;
      }
    return max;
}

int find_min(int *a,int len,int *pindex)
{
    int min = *a;
    int i;
    
    for(i=1;i<len;i++)
     if(*(a+i)<min)
      {
          min=*(a+i);
          *pindex=i;
      }
    return min;
}

你醒了?快起来敲代码!!
2015-04-09 18:01
南国雨
Rank: 1
等 级:新手上路
帖 子:26
专家分:9
注 册:2015-2-1
收藏
得分:4 
1.main函数最后少了一个{
2.在你的test函数中,第一个for循环中的条件应该是j<N-1;(你可以写几个数验证一下嘛,嘿嘿)
3.如果你只是要求最大最小值的话,不用先排好序。直接全部比较一轮就行了(你可以把第一个数作为最小的数,然后挨个比,比第一个数还小的,就把这个数的值给这个变量。循环比一遍就行了。最大值同理嘛)
2015-04-09 19:41
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
收藏
得分:0 
回复 2楼 xzlxzlxzl
我只是是利用了冒泡排序的这个特点 排序后 第一个数值就是最小者 最后一个数值就是最大值 但这也算的上一个方法吧
   小弟不才 还请您赐教 如何实现一次循环就可以指出最小值 最大值 谢谢!

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-09 22:21
xueyujianke
Rank: 2
等 级:论坛游民
帖 子:8
专家分:41
注 册:2015-4-6
收藏
得分:4 
用一个循环即可

本人初学者,请大家多多指教
2015-04-09 22:26
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
收藏
得分:0 
回复 4楼 code力力
可行是可行 但不过相比之下 会不会复杂了点
     看兄台的代码 看的出编程水平不一般 是否愿意交个朋友 带小弟一程?

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-09 22:26
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
收藏
得分:0 
回复 3楼 TAAAAB
是哦 这是个问题 谢谢指出 !

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-09 22:27
逍风
Rank: 2
来 自:中国 江西
等 级:论坛游民
帖 子:88
专家分:84
注 册:2015-3-7
收藏
得分:0 
回复 5楼 南国雨
加上 "}"后 程序成功运行 就是这么一个细节问题 却造成好多错误 这也再次提醒了我 : 编程 一定要认真 细节问题 都马虎不得!

<%谦虚学习,用心做人,没有最好,只有更好!%>
2015-04-09 22:33
快速回复:各位 谁能帮小弟看一下 谢谢!
数据加载中...
 
   



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

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