| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 800 人关注过本帖
标题:循环哪里出错了
只看楼主 加入收藏
lixingxing52
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:31
专家分:33
注 册:2009-11-2
结帖率:91.67%
收藏
已结贴  问题点数:15 回复次数:16 
循环哪里出错了
#include<stdio.h>
#include<string.h>
void main()
{
    char str[200];
    int c,i;
    gets(str);
    c=strlen(str);
    printf("原字符为:%s\n",str);
    for (;c>0;c--)
        for(i=0;i<=c;i++)
            str[c]=str[i];
            printf("%s",str);
   
}
搜索更多相关主题的帖子: include 
2009-11-10 13:12
lixingxing52
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:31
专家分:33
注 册:2009-11-2
收藏
得分:0 
为什么输出的是 “烫” 这个汉字呢?不是把字符逆序输出呢?

新手上路,请多帮助。谢谢!
2009-11-10 13:15
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<string.h>
void main()    //  输出那个字说明数组越界了,
{
    char str[200],str1[200],temp;
    int c,i=0;
    gets(str);
    c=strlen(str);
    printf("原字符为:%s\n",str);
/*    for (;c>0;c--)
            str1[i++]=str[c-1];     //  这种括起来的方法是用另一个字符数组来储存倒序的字符串
    str1[i]='\0';
            printf("%s",str1);
            */
    for (;c>i;c--,i++)
            temp = str[c-1], str[c-1] = str[i],str[i] = temp; //  想交换两个字符必须要有中间变量,(位运算除外)
            printf("%s",str);

}   
2009-11-10 13:35
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
收藏
得分:0 
3楼高手
能否问下,第一种方法加str1[i]='\0';有什么好处?

[ 本帖最后由 zqb7899 于 2009-11-10 14:08 编辑 ]
2009-11-10 14:06
zqb7899
Rank: 4
等 级:业余侠客
帖 子:159
专家分:238
注 册:2009-10-16
收藏
得分:0 
用逗号省略大括号了
2009-11-10 14:13
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
给它加上字符串的结束符。用printf("%s",)来输出的话,是要遇到'\0'这个结束符才终止,如果没有的话,它会一直读取输出,又会多很多“烫”了,
2009-11-10 14:14
万改称才
Rank: 3Rank: 3
来 自:温州
等 级:论坛游侠
帖 子:58
专家分:113
注 册:2009-11-10
收藏
得分:0 
以下是引用zqb7899在2009-11-10 14:06:01的发言:

3楼高手
能否问下,第一种方法加str1='\0';有什么好处?
加在循环里   起到终止循环用的

老师说 : 好好读书
2009-11-10 16:49
lijm1989
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:珠海
等 级:贵宾
威 望:12
帖 子:675
专家分:2844
注 册:2009-10-14
收藏
得分:0 
以下是引用万改称才在2009-11-10 16:49:31的发言:

加在循环里   起到终止循环用的
我放在循环外面···
2009-11-10 16:54
lixingxing52
Rank: 2
来 自:重庆
等 级:论坛游民
帖 子:31
专家分:33
注 册:2009-11-2
收藏
得分:0 
for (;c>i;c--,i++)
            temp = str[c-1], str[c-1] = str[i],str[i] = temp; //  想交换两个字符必须要有中间变量,(位运算除外)
            printf("%s",str);
 根据我的测试,这段没什么用啊·
  可以删除··

新手上路,请多帮助。谢谢!
2009-11-10 20:28
viky2003
Rank: 5Rank: 5
等 级:职业侠客
帖 子:375
专家分:383
注 册:2007-4-11
收藏
得分:5 
程序代码:
char str[200];
int c,i;
int temp;
gets(str);
c=strlen(str);
printf("原字符为:%s\n",str);
for(i = 0;i < c;i++ , c--)
{
  temp = str[i] ;
  str[i] = str[c];
  str[c] = temp;
}
比较简单吧。



要练习算法就来http:///!!有挑战哦!!
2009-11-10 20:37
快速回复:循环哪里出错了
数据加载中...
 
   



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

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