注册 登录
编程论坛 C语言论坛

小白求助,看看代码错在哪儿:(题目)输入一行电报文字,将字母变成其下一字母(如’a’变成’b’……’z’变成’a’其它字符不变)。

月影湖 发布于 2019-12-07 12:49, 2626 次点击
#include<stdio.h>//运行后的输出错误
#include<string.h>
int main()
{   
    int i;
    char f[100];
    gets(f);
     for(i=0;f[i]!='\0';i++)
      {   
    if(f[i]='z')
    {f[i]='a';break;}
    else
    f[i]=f[i]+1;
      }
    printf("%s",f);
   
   return 0;
}
3 回复
#2
纯蓝之刃2019-12-07 13:35
if(f[i]=='z')

你写成if(f[i]='z')赋值语句了。
而且你的逻辑感觉不太对。
程序代码:
#include<stdio.h>
#include<string.h>

int main()
{
    int i;
    char f[100];
    gets(f);
    for(i=0;f[i]!='\0';i++)
    {
        if((f[i]<='z')&&(f[i]>='a'))
        {
            if(f[i]=='z')
                f[i]='a';
            else
                f[i]=f[i]+1;
        }
    }
    printf("%s",f);

    return 0;
}
#3
月影湖2019-12-07 14:00
回复 2楼 纯蓝之刃
逻辑有问题?不知道哦。麻烦你啦,谢谢,提交通过了
#4
wangxinbozj2019-12-07 21:43
这里不能用break语句,不然只要输入了z字符,直接跳出循环,不再执行后面语句。
1