| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 765 人关注过本帖
标题:关于else 和if 的困扰!
只看楼主 加入收藏
xiaovs007
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:48
专家分:88
注 册:2010-5-16
结帖率:100%
收藏
 问题点数:0 回复次数:9 
关于else 和if 的困扰!
#include "stdio.h"
main()
{
    char s[1000];
    int i;
    printf("Please input the string:\n");
    scanf("%s",s);
    for(i=0;i<1000;i++)
    {
        if(s[i]!='\0')
        {
            if(s[i]=='z')
            {
                s[i]='a';
            }
            else if(s[i]=='Z')//如果将本行的else去掉程序将不执行上一个if语句,请求指点。
            {
                s[i]='A';
            }
            else
                s[i]+=1;
        }
        else
            break;

    }
    printf("%s\n",s);
}
搜索更多相关主题的帖子: else 困扰 
2010-05-19 12:25
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
#include <stdio.h>
int main()
{
    char s[1000];
    int i;
    printf("Please input the string:\n");
    scanf("%s",s);
    for(i=0; s[i]!='\0'; i++)
    {
        if(s[i]=='z')
            s[i]='a';
        else
            s[i]+=1;
    }
    printf("%s\n",s);
    return 0;
}
可以的。。。。。。

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 12:28
xiaovs007
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:48
专家分:88
注 册:2010-5-16
收藏
得分:0 
for(i=0;i<1000;i++)
    {
        if(s[i]!='\0')
        {
            if(s[i]=='z')
            {
                s[i]='a';
            }
           if(s[i]=='Z')
            {
                s[i]='A';
            }
            else
                s[i]+=1;
        }
        else
            break;

    }
如果我把循环部分改成这样(把那个else去掉了),编译后输入z(小写)后怎么输出个b啊?劳烦了!
2010-05-19 12:38
NoSoul
Rank: 9Rank: 9Rank: 9
来 自:沈阳化工大学
等 级:蜘蛛侠
帖 子:283
专家分:1010
注 册:2009-6-6
收藏
得分:0 
先执行的 判断s[i]==‘z’  你输入的是z  那么s[i]=a   但然后判断的是s[i]=='Z'  不是进入else  s[i]+=1了 此时s[i]=b;
  这牵扯到了匹配问题 你的else 是与第二个if(s[i]=='Z')匹配的

[ 本帖最后由 NoSoul 于 2010-5-19 12:45 编辑 ]

我想伸手拉近點,竟觸不到那邊,就欠一點點,但這一點點...卻好遠
2010-05-19 12:40
myhnuhai
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:3
帖 子:425
专家分:1725
注 册:2010-3-17
收藏
得分:0 
关于else 和if 的困扰!
#include "stdio.h"
main()
{
    char s[1000];
    int i;
    printf("Please input the string:\n");
    scanf("%s",s);
    for(i=0;i<1000;i++)
    {
        if(s[i]!='\0')
        {
            if(s[i]=='z')
            {
                s[i]='a';
            }
            else if(s[i]=='Z')//如果将本行的else去掉程序将不执行上一个if语句,请求指点。上面的花括号也要去掉,不然的话上一个if与下一个if不能搭配,必须用else连接才能搭配!
            {
                s[i]='A';
            }
            else
                s[i]+=1;
        }
        else
            break;

    }
    printf("%s\n",s);
}
看看以下的,你的算法目的是将输入的字符串中的每一个字符用相邻的下一个字符替换是把!!

#include "stdio.h"
main()
{
    char s[1000];
    int i;
    printf("Please input the string:\n");
    scanf("%s",s);
    for(i=0;i<1000;i++)
    {
        if(s[i]!='\0')
        {
            if(s[i]=='z')
           
                s[i]='a'-1;
            
            if(s[i]=='Z')
            {
                s[i]='A';
            }
            else
                s[i]+=1;
        }
        else
            break;

    }
    printf("%s\n",s);
}

不要让肮脏的记忆,迷失了原本纯洁的心灵!
2010-05-19 12:41
xiaovs007
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:48
专家分:88
注 册:2010-5-16
收藏
得分:0 
回复 4楼 NoSoul
谢谢啊!豁然开朗了!
2010-05-19 12:55
炫舞小子
该用户已被删除
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-19 12:56
xiaovs007
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:48
专家分:88
注 册:2010-5-16
收藏
得分:0 
回复 5楼 myhnuhai
谢谢啊!我试过了花括号不去也行,对结果没影响。
2010-05-19 12:58
aiyinsitan
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:183
专家分:177
注 册:2010-4-22
收藏
得分:0 
#include "stdio.h"
main()
{
    char s[1000];
    int i;
    printf("Please input the string:\n");
    scanf("%s",s);
    for(i=0;i<1000;i++)
    {
        if(s[i]!='\0')
        {
            if(s[i]=='z')
            {
                s[i]='a';
            }
            else if(s[i]=='Z')//如果去掉else不是不执行,只是if和else的用法是就进原则。
            {                 //第二个 if 离else近一点,所以 第二个if于else匹配,比如说你输入的是z,经过第一
                             //个判断语句,s[i]=a,然后他不能识别else,所以就会执行s[i]+1  ,输出就是b了。
                  s[i]='A';  
            }
            else
                s[i]+=1;
        }
        else
            break;

    }
    printf("%s\n",s);
}
2010-05-19 13:55
xiaovs007
Rank: 2
来 自:青岛
等 级:论坛游民
帖 子:48
专家分:88
注 册:2010-5-16
收藏
得分:0 
回复 9楼 aiyinsitan
懂了,呵呵,谢谢!
2010-05-19 16:02
快速回复:关于else 和if 的困扰!
数据加载中...
 
   



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

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