| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1586 人关注过本帖
标题:编写一个C程序 关于奇偶数排列问题
只看楼主 加入收藏
ssr
Rank: 2
等 级:论坛游民
帖 子:33
专家分:11
注 册:2017-3-12
结帖率:57.14%
收藏
已结贴  问题点数:20 回复次数:3 
编写一个C程序 关于奇偶数排列问题
一个C程序 第一排先输入字符串odd 或者 even 判断是奇数还是偶数
第二排然后输入要排列的个数
第三排输入要排列的数字

如果是奇数 就对数列里面奇数从小到大排列 偶数的位置不变
比如说
输入
odd
10
5 3 4 2 1 6 8 7 10 9
输出
1 3 4 2 5 6 8 7 10 9
搜索更多相关主题的帖子: 奇偶数 字符串 
2017-03-12 05:27
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
我说这题目怎么这么眼熟,原来我写过一次。

当然,main()你得自己写。

程序代码:
#include <stdio.h>
void
paixu(int p[], int n);
int main(void)
{
    int a[10] = { 5, 3, 4, 2, 1, 6, 8, 7, 10, 9 };
    int b;
    paixu(a, 10);
    for (b = 0; b<10; b++)
        printf("%d ", a[b]);
    return 0;
}
void
paixu( int p[], int n )
{
    int i, t, j;


    for (i = 0; i < n; i++)
        if ( p[ i ] % 2 )
            for ( j = 0; j < n; j++ )
                if ( p[ i ] < p[ j ] && p[ j ] % 2 )
                {
                    t = p[ i ];
                    p[ i ] = p[ j ];
                    p[ j ] = t;
                }
}


[此贴子已经被作者于2017-3-12 12:25编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-03-12 12:24
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:20 
闲着无聊当做练习,我觉得楼主应先自己试试
#include <stdio.h>
#include <string.h>
void paixu(int *a,char b)
{
    int i,j,temp;
    for(i=0;a[i+1]!='\0';i++)
        for(j=i+1;a[j]!='\0';j++)
        {
            
            if(b==2&&a[i]%2==0&&a[j]%2==0)
            {
                if(a[i]>a[j])
                {
                    temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
            }
            else if(b==1&&a[i]%2&&a[j]%2)
            {
                if(a[i]>a[j])
                {
                    temp=a[i];
                    a[i]=a[j];
                    a[j]=temp;
                }
            }
               
        }
}

main()
{
    char jiu[5],a,i,flag=0;
    int c[20];
    while(flag!=1&&flag!=2)
    {
    printf("please enter 'odd' or 'even' !\n");
    scanf("%s%*c",jiu);
    if(!strcmp(jiu,"odd"))flag=1;
    else if(!strcmp(jiu,"even"))flag=2;
    else printf("err enter!\n");
    }
    printf("please enter the sum:\n");
    scanf("%d",&a);
    while(getchar()!='\n');
    for(i=0;i<a;i++)
    {
        printf("please enter the %d nuber:",i+1);
        scanf("%d",&c[i]);
    }
    c[i]='\0';
    printf("the former numbers are:\n");
    for(i=0;i<a;i++)
    {
        printf("%d ",c[i]);
    }
    printf("\n");
    paixu(c,flag);
    printf("the current numbers are:\n");
    for(i=0;i<a;i++)
    {
        printf("%d ",c[i]);
    }
}
2017-03-12 13:49
ssr
Rank: 2
等 级:论坛游民
帖 子:33
专家分:11
注 册:2017-3-12
收藏
得分:0 
回复 3楼 ehszt
请问怎么去掉空格和换行
输出 1_3_4_2_5_6_8_7_10_9_\n
输出 1_3_4_2_5_6_8_7_10_9
2017-03-12 23:30
快速回复:编写一个C程序 关于奇偶数排列问题
数据加载中...
 
   



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

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