| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2212 人关注过本帖
标题:求助 数组的交换
只看楼主 加入收藏
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
结帖率:0
收藏
 问题点数:0 回复次数:10 
求助 数组的交换
任意输入一个自然数,输出该自然数的各位数字组成的最大数。例如,输入 1593 ,则输出为 9531 。

搜索更多相关主题的帖子: 数组 交换 输入 自然数 输出 
2017-12-21 21:05
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
收藏
得分:0 
#include<stdio.h>
int main()
{
    char a[10];
    int i=0,k=0,d=0;
    int  max=a[0],min=a[0];
    while((a[i]=getchar())!='\n')
    i++;
    a[i]=0;
    for(i=0;i<10;i++)
   {   
        if(a[i]>max)  
         {
           max=a[i];
           k=i;
         }
              
        if(a[i]<min)  
         {
           min=a[i];
           d=i;
         }
    }  
    a[d]=max;
    a[k]=min;
    for(i=0;i<10;i++)
     putchar(a[i]);
   
 }


自己的摸索,但是没有解出来
2017-12-21 21:06
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
收藏
得分:0 
回复 2楼 lizexu
主要想问下怎样交换最大和最小的 需要加个中间值吗?
2017-12-21 21:36
blackshep
Rank: 2
等 级:论坛游民
帖 子:8
专家分:25
注 册:2017-12-20
收藏
得分:0 
回复 3楼 lizexu
用n%10的方式分离自然数的每一位,然后将所有的数字排序,升序输出就是最大值,降序输出就是最小值
2017-12-21 21:44
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10527
专家分:42899
注 册:2014-5-20
收藏
得分:0 
#include <stdio.h>
main()
{
    char ch, a[10]={0};
    while ((ch=getchar()) != '\n')
        if (ch>='0' && ch<='9')
            ++a[ch-'0'];
    int i, j;
    for (i=9; i>=0; --i)
        if (a[i])
            for (j=0; j<a[i]; ++j)
                printf("%d", i);
}
2017-12-21 21:51
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
收藏
得分:0 
回复 5楼 吹水佬
这样不是从大到小排序了吗?我只想交换大的和小的
2017-12-21 22:02
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
收藏
得分:0 
回复 5楼 吹水佬
抱歉,是我自己把题看错了,把自己都搞晕了
2017-12-21 22:04
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
#include<stdio.h>
int main()
{
    char a[10], ch;
    int i = 0, j, k;
    while ((a[i] = getchar()) != '\n')
        i++;
    for (j = 0; j<i; j++)
    {
        ch = a[j];
        for (k = j + 1; k<i; k++)
        {
            if (ch<a[k])
            {
                ch = a[k];
                a[k] = a[j];
                a[j] = ch;
            }
        }
    }
    for (k = 0; k<i; k++)
        putchar(a[k]);

    getchar();

    return 0;
}
2017-12-21 22:06
新人学习
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:145
专家分:187
注 册:2017-10-26
收藏
得分:0 
就是这么简单..
2017-12-21 22:06
lizexu
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2017-11-7
收藏
得分:0 
回复 9楼 新人学习
谢谢
2017-12-21 22:09
快速回复:求助 数组的交换
数据加载中...
 
   



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

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