| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 894 人关注过本帖
标题:一个C语言问题
取消只看楼主 加入收藏
xfkfzxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-6-25
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
一个C语言问题
户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序。 用两个数组保存字符和数字   用cin和cout  头文件包含<         .h>

这个单独输入我会,但是后面这个混合的怎么输啊 而且还得用被掉函数。。。。
搜索更多相关主题的帖子: 数据 数字 C语言 
2012-06-25 18:21
xfkfzxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-6-25
收藏
得分:0 
回复 3楼 liufashuai
嗯 但是真实情况是 往年都是大二大三才让写 我大一 有很多都没讲 老师说自学...
2012-06-25 20:06
xfkfzxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-6-25
收藏
得分:0 
回复 3楼 liufashuai
#include<iostream.h>
void sort(char[]);
void sort(int[]);
const int N=20;
void main()
{
    char a[N],b[N];
    cout<<"input the array:";
    cin>>a>>b;
    sort(a);
    sort(b);
    cout<<"after sorted,the string is: "<<a<<"\t"<<b<<endl;
}

void sort(char x[])
{
    char t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
void sort(int x[])
{
    int t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
这是单独写的 但是我不明白混合到一块时怎么分开,以及这时怎么用被调函数
2012-06-25 20:27
xfkfzxl
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2012-6-25
收藏
得分:0 
#include<iostream.h>
void sort(char[]);
void sort(int[]);
void sort1(char[]);
void sort1(int[]);
const int N=20;
void main()
{
    char a[N],b[N],c[N],d[N]={'\0'},f[N]={'\0'};
    cout<<"input the array:";
    cin>>a>>b>>c;
    sort(a);
    sort(b);
    sort1(d);
    sort1(f);
    int j=0,k=0;
    for(int i=0;i<=N,j!='\0',k!='\0';i++,j++,k++)   
        if(c[i]>='0'&&c[i]<='9')
        {
       d[j]=c[i];
        }                                                
        if((c[i]>='a'&&a[i]<='z')||(c[i]>='A'&&a[i]<='Z'))
        {
            f[k]=c[i];
        }
    cout<<"after sorted,the string is: "<<a<<"\t"<<b<<"\t"<<d<<"\t"<<f<<endl;
}

void sort(char x[])
{
    char t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
void sort(int x[])
{
    int t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
void sort1(char x[])
{
    char t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
void sort1(int x[])
{
    int t;
    for(int i=0;x[i];i++);
    int length=i;
    for(i=0;i<length-1;i++)
        for(int j=0;j<length-1-i;j++)
            if(x[j]<x[j+1])
            {
                t=x[j];
                x[j]=x[j+1];
                x[j+1]=t;
            }
}
下面是小弟的运行结果:
input the array:wsx
456
wsx456
after sorted,the string is: xws 654             w
Press any key to continue
为什么 第三个混合输入时 结果只有一个‘w’呢 求解
2012-06-25 21:28
快速回复:一个C语言问题
数据加载中...
 
   



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

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