| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 790 人关注过本帖
标题:求助:改正"疯狂英语"程序
只看楼主 加入收藏
xiaxin
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2007-10-21
收藏
 问题点数:0 回复次数:2 
求助:改正"疯狂英语"程序
请你将一些单词由短到长排一下序
输入包含多行,每行一个单词,长度不超过100个字母。
  保证每个单词只包含小写字母,没有长度相同的两个单词。最后输入“END”表示输入结束,“END”不算作要背的单词。
 
#include<iostream>
#include<cmath>
#include<cstring>

const int SIZE=100;
using namespace std;
int main()
{
     char *article[SIZE],line[100],b[101];
     int j, i,k,length=0;

    while(1)
    {
        cin.getline(line,100);
        if(strcmp(line,"END")==0) break;
        article[length]=new char[strlen(line)+1];
        strcpy(article[length],line);
        length++;

    }
      k=length;
      for(i=0;i<k-1;i++)
      for(j=0;j<k-1-i;j++)
       if(strlen(article[j])>strlen(article[j+1]))
        {
            strcpy(b,article[j]);
            strcpy(article[j],article[j+1]);
            strcpy(article[j+1],b);
        }
    for(i=0;i<K;i++)
         {
        cout<<article[i]<<endl;
        delete  article[i];
        }
       system("pasue");
       return 0;
}
请你帮我看看这个程序里的错误,谢谢.
搜索更多相关主题的帖子: 疯狂英语 
2007-12-23 10:44
wuyu520
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2008-1-29
收藏
得分:0 
#include<iostream>
#include<cmath>
#include<string>

const int SIZE=100;
using namespace std;
int main()
{
    string article[SIZE];
    int j, i,k,length=0;
    getline(cin,article[length]);
    while(article[length]!="END")
    {
    length++;
    getline(cin,article[length]);
    }

    k=length;
    for(i=0;i<k-1;i++)
        for(j=0;j<k-1-i;j++)
            if(article[j].size()>article[j+1].size())
            {
                string temp;
                temp = article[j];
                article[j]=article[j+1];
                article[j+1] = temp;
                
            }

    for(i=0;i<k;i++)
    {
        cout<<article[i]<<endl;
    }

    system("pasue");
    return 0;
}
你的是NEW和DELETE出了问题   还有K大写了.... 找不出原因换了个STRING呵呵  见笑
2008-01-29 15:39
cder2008
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2008-1-31
收藏
得分:0 
回复 1# 的帖子
楼主,在C++中,大小写的字母是两个变量……K和k是两个变量
你的倒数第8行的代码for(i=0;i<K;i++)这个K出了问题
把它改成小写就可以运行了
以后要注意哦
2008-02-01 10:35
快速回复:求助:改正"疯狂英语"程序
数据加载中...
 
   



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

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