| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 712 人关注过本帖
标题:请高手找程序错误,急!!!
只看楼主 加入收藏
野兽男孩Andy
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-6-26
结帖率:0
收藏
已结贴  问题点数:10 回复次数:7 
请高手找程序错误,急!!!
开发一个排序程序,用户输入长度(数据个数)可变的数据,输入字母,则按字符排序;输入数字,则按数字排序;输入字母和数字的混合数据,则首先区分数字和字母,然后各自排序
#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;
            }
}
搜索更多相关主题的帖子: include 开发 用户 
2012-06-26 15:22
liudw2
Rank: 4
等 级:业余侠客
帖 子:85
专家分:248
注 册:2011-7-31
收藏
得分:2 
少了using namespace std;了!少年。。。
2012-06-26 22:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:2 
请高手找程序错误,急!!!
----- 你先得告诉别人哪里有错,如果是编译链接出错,贴出编译器给出的错误信息;如果是运行结果不符合你的预期,给出运行结果以及你的预期结果。
2012-06-27 08:24
野兽男孩Andy
Rank: 1
等 级:新手上路
帖 子:5
专家分:3
注 册:2012-6-26
收藏
得分:0 
回复 2楼 liudw2
include后面的.h和你说的那个是不是一个意思啊
2012-06-28 08:09
lxqlyld
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:116
专家分:125
注 册:2012-6-18
收藏
得分:2 
我用的是C++ Builder 6.0开发环境,帮你改了一下,主要就两点错误:你用了泛型算法sort(),需要包含头文件#include<algorithm>;另外一个就是变量i,你每次都是在for循环中定义,这样的定义在for循环之外是不可见的,我是在你每一个函数中帮你定义了一次,定义在for循环之外,这样比较麻烦,但是可以的;变量i在你程序中出现的比较多,以后遇到这样的情况最好在全局域中定义它,省的一次一次的定义。
改好的程序:
#include<iostream.h>
#include<algorithm>
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,i;
    for(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;
    int i;
    for(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;
    int i;
    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;
    int i;
    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;
    int i;
    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-29 14:33
jiantiewen
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:61
专家分:307
注 册:2012-6-22
收藏
得分:0 
回复 2楼 liudw2
#include <iostream.h>可直接使用cin,cout,endl等流对象。#include <iostream>则要先using namespace std;
2012-06-29 18:59
梦ambious
Rank: 2
等 级:论坛游民
帖 子:27
专家分:71
注 册:2011-11-25
收藏
得分:2 
没错呀,我用的VC 6.0
2012-06-29 21:49
jiantiewen
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:61
专家分:307
注 册:2012-6-22
收藏
得分:2 
我用VS2008和VS2010编译运行过,不知楼主到底是指什么错?
2012-06-29 23:12
快速回复:请高手找程序错误,急!!!
数据加载中...
 
   



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

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