| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1743 人关注过本帖
标题:大佬 求简单的~_~..
只看楼主 加入收藏
yyf6
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2017-11-16
收藏
 问题点数:0 回复次数:7 
大佬 求简单的~_~..
交换最小值和最大值
输入一个正整数  n  (1<n<=10),再输入n  个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n  个数。
搜索更多相关主题的帖子: 交换 最小值 最大值 输入 一个数 
2017-12-13 10:11
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:0 
没代码?
2017-12-13 10:33
虫眼
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:314
专家分:1121
注 册:2017-11-29
收藏
得分:0 
帮你写个交换函数吧,剩下的你自己完成。
程序代码:
int jiaohuan(int a,int b){
   

    return ((a>b)?a:b);
}
2017-12-13 10:44
帅死不偿命
Rank: 2
等 级:论坛游民
威 望:1
帖 子:14
专家分:30
注 册:2017-10-9
收藏
得分:0 
代码我就不写了,你可以看一下,就你这个贴,下面有一个冒泡排列,还有一种选择排列,这两种都可以解决你这个问题,如果实在还是没有看懂得话,你可以在查查这两种方法的使用方法,因为直接跟你写代码可以你也不明白是怎么操作的,所以我还是建议看一下这两种方法的定义和使用方法,因为这两种比较简单,好理解,有蛮实用的
2017-12-13 11:13
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
#include <stdio.h>

void swap( int* pa, int* pb )
{
    int t = *pa;
    *pa = *pb;
    *pb = t;
}

int main( void )
{
    size_t n;
    int buf[10];
    // ……………………

    size_t idx_min=0, idx_max=0;
    for( size_t i=0; i!=n; ++i )
    {
        if( buf[i] < buf[idx_min] )
            idx_min = i;
        if( buf[i] > buf[idx_max] )
            idx_max = i;
    }

    swap( &buf[0], &buf[idx_min] );
    if( idx_max == 0 )
        idx_max = idx_min;
    swap( &buf[n-1], &buf[idx_max] );

    for( size_t i=0; i!=n; ++i )
        printf( "%d%c", buf[i], " \n"[i+1==n] );
}
2017-12-13 12:59
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
#include<stdio.h>
void paixu(int [],int );

int main(void)
{
    int n;
    int sz[10];
    printf("输入即将输入数字的数量:(大于1小于等于10)");

    scanf("%d",&n);
    while(n<=1||n>10)
    {
        puts("输入错误 重新输入");
        scanf("%d",&n);
    }
    paixu(sz,n);

    return 0;



}

void paixu(int a[],int n)
{
    int i,x,j;
    printf("依次输入(int)数字:\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    for(i=0;i<n;i++)
        printf("%-3d",a[i]);
    printf("\n");
    x=a[0];
    for(i=0,j=0;i<n;i++)
    {
        if(x>a[i])
        {
            x=a[i];
            j=i;
        }
    }
        a[j]=a[0];
        a[0]=x;
    x=a[n-1];
    for(i=0,j=n-1;i<n;i++)
    {
        if(x<a[i])
        {
            x=a[i];
            j=i;
        }
    }
        a[j]=a[n-1];
        a[n-1]=x;
    for(i=0;i<n;i++)
        printf("%-3d",a[i]);
    printf("\n");


}
2017-12-13 23:25
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
用我的吧 已调试好了~只输入int类型的值就没问题.
2017-12-13 23:29
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
#include<stdio.h>
#include<iostream>
using namespace std;
int main(void)
{
    int i,n,k,m;
    int *p;
    cout<<"输入有几个元素的值:";
    scanf("%d",&n);
    p=new int[n];
    printf("给%d元素赋值:\n",n);
    for(i=0;i<n;i++)
    {
        cout<<"第"<<i+1<<"个元素值==";
        scanf("%d",(p+i));
    }

    for(i=0;i<n;i++)
        cout<<*(p+i)<<"  ";
        cout<<endl;
    m=*p;
    for(i=1;i<n;i++)
    {
        if(m>*(p+i))
        {
            m=*(p+i);
            k=i;
        }
    }
    *(p+k)=*p;
    *p=m;


    m=*(p+(n-1));
    for(i=0,k=n-1;i<n-1;i++)
    {
        if(m<*(p+i))
        {
            m=*(p+i);
            k=i;
        }
    }
    *(p+k)=*(p+(n-1));
    *(p+(n-1))=m;
    cout<<"最小数和第一个数字互换,最大数最后一个数互换"<<endl;
    cout<<"转换后的显示:"<<endl;

    for(i=0;i<n;i++)
        cout<<*(p+i)<<"  ";
    cout<<endl;

delete p;






    system("pause");


    return 0;
}
这个是指针方法....
2017-12-14 09:56
快速回复:大佬 求简单的~_~..
数据加载中...
 
   



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

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