| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1424 人关注过本帖
标题:求最值的问题厄。菜鸟做题目都不懂厄
只看楼主 加入收藏
boxinchao
Rank: 4
等 级:业余侠客
帖 子:51
专家分:231
注 册:2011-4-13
收藏
得分:0 
我看懂了你的代码,你却没看懂我的回复
请参照9搂的建议修改一下吧~
2011-04-16 12:43
张春平
Rank: 3Rank: 3
来 自:北城
等 级:论坛游侠
帖 子:48
专家分:124
注 册:2010-12-2
收藏
得分:5 
我这也有一个:
#include<stdio.h>
void input(int number[])
{
    int i;
    printf("input 10 numbers: ");
    for(i=0;i<10;i++)
        scanf("%d",&number[i]);
}
void max_min_value(int number[])
{
    int *max,*min,*p,temp;
    max=min=number;
    for(p=number+1;p<number+10;p++)
    {
        if(*p<*min)min=p;
        if(*p>*max)max=p;
    }
    temp=number[0];
    number[0]=*min;
    *min=temp;
    if(max==number)max=min;
    temp=number[9];
    number[9]=*max;
    *max=temp;
}
void output(int number[])
{
    int *p;
    printf("Now,they are: ");
    for(p=number;p<number+10;p++)
        printf("%d ",*p);
    printf("\n");
}
main()
{
    int number[10];
    input(number);
    max_min_value(number);
    output(number);
}
2011-04-16 12:58
boxinchao
Rank: 4
等 级:业余侠客
帖 子:51
专家分:231
注 册:2011-4-13
收藏
得分:0 
楼上你这个的结果:
input 10 numbers: 5 4 3 2 1 0 6 7 8 9
Now,they are: 0 4 3 2 1 5 6 7 8 9
Press any key to continue

貌似和前面那位兄弟的一样,只做了一次交换,分别把最小最大值交换到了最前面和最后面。

2011-04-16 13:09
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
哥们,楼主不是要你排序,只是要你第一个最小,最后一个最大!

   唯实惟新 至诚致志
2011-04-16 13:20
boxinchao
Rank: 4
等 级:业余侠客
帖 子:51
专家分:231
注 册:2011-4-13
收藏
得分:0 
如果是这样,那我只能说抱歉了
2011-04-16 13:29
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
看清楚条件啊

   唯实惟新 至诚致志
2011-04-16 13:35
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
收藏
得分:0 
#include<stdio.h>
int main(void)
{
    int arr[10],n,i,max=0,min=0,temp;
    scanf("%d",&n);   
    for(i=0;i<n;i++)
        scanf("%d",&arr[i]);
    for(i=1;i<n;i++){
        if(arr[max]<arr[i])
            max=i;
        if(arr[min]>arr[i])
            min=i;
    }
    temp=arr[0];
    arr[0]=arr[min];
    arr[min]=temp;
    temp=arr[n-1];
    arr[n-1]=arr[max];
    arr[max]=temp;
    for(i=0;i<n-1;i++)
        printf("%d ",arr[i]);
    printf("%d\n",arr[n-1]);
    return 0;
}  
 #1
作者:
YesOrNo
发表时间:
2009-09-30 12:34:55.0  知道了,哈哈  
 #2
作者:
527554192
发表时间:
2010-05-31 14:03:23.0  #include<stdio.h>
int main()
{ int a[10],b[10],c[10],i,n,t,max,min,l1,l2;

 scanf("%d",&n);
 if(n>=1&&n<=10)
 {
   for(i=0;i<n;i++)
   scanf("%d",&a[i]);
   max=min=a[0];
  for(i=0;i<n;i++)
   {
    if(min>=a[i])
     { min=a[i];
      l1=i; }
    if(max<=a[i])
     { max=a[i];
      l2=i; }
   }
  if(a[0]==max&&a[n-1]!=min)
   {
   for(i=1;i<n;i++)
    { b[i-1]=a[i];}
     b[n-1]=a[0];
     c[0]=b[l1-1];
   for(i=0;i<l1-1;i++)
     c[i+1]=b[i];
   for(i=l1-1;i<n;i++)
     c[i]=b[i];
  for(i=0;i<n;i++)
   printf("%d ",c[i]);
    printf("\n");

   }
  else
  {
    t=a[0];
    a[0]=a[l1];
    a[l1]=t;
    t=a[n-1];
    a[n-1]=a[l2];
    a[l2]=t;

  for(i=0;i<n;i++)
   printf("%d ",a[i]);
  }
  printf("\n");
}
 return 0;
}
能解释一下这个程序吗???我看不懂厄
2011-04-16 20:33
redunkind
Rank: 2
等 级:论坛游民
帖 子:36
专家分:14
注 册:2011-4-10
收藏
得分:0 
关于2楼的方法是错误的,如果第一个是最大的数交换之后可能会不是原来的数如果数据是5 1 2 3 4输出就不行了
2011-04-16 21:12
Martinwc
Rank: 2
等 级:论坛游民
帖 子:14
专家分:19
注 册:2011-3-20
收藏
得分:0 
我一开始算法跟二楼一样,后来多试了几遍,发现错了:
图片附件: 游客没有浏览图片的权限,请 登录注册

2011-04-17 01:07
嗯嗯ENEN
Rank: 1
等 级:新手上路
帖 子:17
专家分:6
注 册:2011-4-10
收藏
得分:0 
嘻嘻
2011-04-17 07:59
快速回复:求最值的问题厄。菜鸟做题目都不懂厄
数据加载中...
 
   



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

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