| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:不知为什么程序总是无法执行
只看楼主 加入收藏
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:9 
不知为什么程序总是无法执行
我是新手正在学C++,今天我们老师给我们留了道题是这样的:“编写程序,从键盘输入一个字符串放在字符数组a中,用选择法将a中的有效字符按降序排列。”
#include <stdio.h>
main()
{    int i,k,j,temp;
    char a[100]="";
    gets(a);
    for(i=0;i<99;i++);
        for(j=i+1;j<100;j++)
            if(a[j]>a[i])
            {    temp=a[j];a[j]=a[i];a[i]=temp;
            }
    puts(a);
}
不是我懒让各位高手帮我做作业,而是我便出来后实在搞不懂哪里错了,有会的请帮我一下,谢谢
搜索更多相关主题的帖子: 键盘 编写程序 include 字符串 
2010-04-25 19:12
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
循环退出条件为 '\0' 而不是<100
2010-04-25 19:22
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
收藏
得分:0 
回复 2楼 hahayezhe
那该怎么改?
2010-04-25 19:23
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
int m=stelen(a);
然后将m作为最大上线
或者for(i=0;a[i]!='\0';i++)方法很多了

动态实现也可以

2010-04-25 19:27
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
收藏
得分:0 
这是我改后的#include <stdio.h>
main()
{    int i,k,j,temp;
    char a[100]="";
    gets(a);
    for(i=0;a[i]='\0';i++);
        for(j=i+1;j<100;j++)
            if(a[j]>a[i])
            {    temp=a[j];a[j]=a[i];a[i]=temp;
            }
    puts(a);
}
可是改完了还是不能实现
2010-04-25 19:32
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
收藏
得分:0 
#include <stdio.h>
#include <string.h>
main()
{    int i,k,j,temp;
    char a[100]="";
    gets(a);k=strlen(a);
    for(i=0;i<k;i++);
        for(j=i+1;j<k;j++)
            if(a[j]>a[i])
            {    temp=a[j];a[j]=a[i];a[i]=temp;
            }
    puts(a);
}
我用strlen改了也没用
2010-04-25 19:41
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 

gets(a);
int m=strlen(a);
for(i=0;i<m;i++)
for(j=i+1;j<m;j++)
if(a[j]>a[i])
{    temp=a[j];a[j]=a[i];a[i]=temp;
}
2010-04-25 19:47
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:5 
   for(i=0;i<k;i++);
多了个分号...............
2010-04-25 19:48
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
收藏
得分:0 
谢谢大大,我终于知道问题出在哪了
我在第一个for语句后加了个“;”这使得后边的循环都不能用了
你的for后边没有,看了你的我才明白
2010-04-25 19:51
haosiyuan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2010-3-15
收藏
得分:0 
额,我发慢了
2010-04-25 19:52
快速回复:不知为什么程序总是无法执行
数据加载中...
 
   



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

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