| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 659 人关注过本帖
标题:求大神解惑,输出不对,求求了,(顺便说说,我是新手)谢谢
只看楼主 加入收藏
zhouykddd
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-4-13
结帖率:0
收藏
已结贴  问题点数:2 回复次数:6 
求大神解惑,输出不对,求求了,(顺便说说,我是新手)谢谢
/*输入十个数,将最大的数排到第一位,最大数排到最后一位
    用三个函数(1)输入十个数(2)处理函数(3)输出函数*/

#include<iostream>
using namespace std;
void input(int*shuzhu)
{
    cout<<"请输入10个整数:";
    for(int i=0;i<10;i++)
        cin>>shuzhu[i];
}
void chuli(int*shuzhu)
{
    int nummin=*shuzhu,nummax=*shuzhu,q,w,tmp;
    for(int j=1;j<=10;j++)
        if(nummin>*(shuzhu+j))
            q=j;
        if(nummax<*(shuzhu+j))
            w=j;
    tmp=*(shuzhu+q);
    *(shuzhu+q)=*shuzhu;
    *shuzhu=tmp;
    tmp=*(shuzhu+w);
    *(shuzhu+w)=*(shuzhu+9);
    *(shuzhu+9)=tmp;
}
void output(int*shuzhu)
{
    cout<<"处理后的排序为:";
    for(int i=0;i<10;i++)
        cout<<shuzhu[i]<<" ";
}
int main()
{
    int number[10];
    input(number);
    chuli(number);
    output(number);
    return 0;
}
搜索更多相关主题的帖子: include 最大的 
2014-04-13 18:35
紫罗兰丹丹
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:13
注 册:2014-3-28
收藏
得分:1 
排序问题用个冒泡排序或者快速排序法就行吧?为什么非要用指针指来指去呢?好晕啊+_+
最简单的冒泡排序。。
void bubble
{
   int i,temp;
   for(int pass=1;pass<size;pass++) //共进行size-1轮比较
   {
        for(i=0;i<size-pass;i++)//比较一轮
           if(a[i]>a[i+1])
           {
              temp=a[i];
              a[i]=a[i+1];
              a[i+1]=temp;
           }
   }
}

...应该是这样emoij...
同样新手..本能的不喜欢用指针。。
大神们.多多包涵~emoij
2014-04-14 06:46
zhouykddd
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-4-13
收藏
得分:0 
回复 2楼 紫罗兰丹丹
这是那一章的习题,叫我们用指针,谢谢指教
2014-04-14 17:51
zhouykddd
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-4-13
收藏
得分:0 
回复 2楼 紫罗兰丹丹
题目要求是把最小的拍到第一位,最大的排到最后一位,其他数的位置不变
2014-04-14 17:56
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:1 
程序代码:
#include <iostream>
#include <utility>
using namespace std;

void foo1( int vals[] )
{
    cout<<"请输入10个整数:";
    for( size_t i=0; i!=10; ++i )
        cin >> vals[i];
}

void foo2( int vals[] )
{
    int minidx=0, maxidx=9;

    for( size_t i=0; i!=10; ++i )
    {
        if( vals[minidx] > vals[i] )
            minidx = i;

        if( vals[maxidx] < vals[i] )
            maxidx = i;
    }

    std::swap( vals[0], vals[minidx] );
    if( maxidx == 0 )
        maxidx = minidx;

    std::swap( vals[9], vals[maxidx] );
}

void foo3( int vals[] )
{
    cout << "处理后的排序为:";
    for( size_t i=0; i!=10; ++i )
        cout << " " << vals[i];
    cout << endl;
}

int main()
{
    int vals[10];
    foo1( vals );
    foo2( vals );
    foo3( vals );

    return 0;
}
2014-04-15 08:32
lplumblossom
Rank: 2
等 级:论坛游民
帖 子:3
专家分:26
注 册:2014-4-15
收藏
得分:1 
#include<iostream>
using namespace std;
void input(int *shuzhu)
{
    cout<<"请输入10个整数:";
    for(int i=0;i<10;i++)
        cin>>shuzhu[i];
}
void chuli(int *shuzhu)
{
    int nummin=*shuzhu,nummax=*shuzhu,q=0,w=0,tmp;
    for(int j=1;j<10;j++)
    {
        if(nummin>*(shuzhu+j))
        {
            nummin=*(shuzhu+j);
            q=j;
        }
        if(nummax<*(shuzhu+j))
        {
            nummax=*(shuzhu+j);
            w=j;
        }
    }
    tmp=*(shuzhu+q);
    *(shuzhu+q)=*shuzhu;
    *shuzhu=tmp;
    if(w==0)
        w=q;
    tmp=*(shuzhu+w);
    *(shuzhu+w)=*(shuzhu+9);
    *(shuzhu+9)=tmp;
}
void output(int *shuzhu)
{
    cout<<"处理后的排序为:";
    for(int i=0;i<10;i++)
        cout<<shuzhu[i]<<" ";
    cout<<endl;
}
int main()
{
    int number[10];
    input(number);
    chuli(number);
    output(number);
    return 0;
}
2014-04-15 18:21
骚年来一发
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:71
注 册:2014-3-28
收藏
得分:1 
#include<iostream>
using namespace std;
int number[10];  //定义为外部变量
void input(int*shuzhu)
{
    cout<<"请输入10个整数:";
    for(int i=0;i<10;i++)
        cin>>shuzhu[i];
}
void chuli(int*shuzhu)//这个指针指向向的是 number【0】
{
    int q,w,a,tmp;
    for(q=0;q<=10-2;q++)
    {  
       a=q;
      for(w=q+1;w<=9;w++)
      {
       if(*(shuzhu+a)>*(shuzhu+w))
         a=w;
      }
         tmp=*(shuzhu+q);
         *(shuzhu+q)=*(shuzhu+a);
         *(shuzhu+a)=tmp;

     }
}
  

   

void output(int*shuzhu)
{
    cout<<"处理后的排序为:";
    for(int i=0;i<10;i++)
        cout<<shuzhu[i]<<" ";
}
int main()
{
  
    input(number);
    chuli(number);
    output(number);
    return 0;
}
2014-04-18 19:18
快速回复:求大神解惑,输出不对,求求了,(顺便说说,我是新手)谢谢
数据加载中...
 
   



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

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