永发信息网

C程序编程问题,高手帮我找找错误

答案:3  悬赏:60  手机版
解决时间 2021-04-12 23:55
  • 提问者网友:山高云阔
  • 2021-04-12 09:00

题目是:用条件编译方法,输入一行电报文字,可以任选两种输出:一为原文输出;一为将字母变成其下一字母,其他非字母字符不变。用#define命令来控制是否要译成密码。

我编好程序之后输入the输出的结果仍是the,求高手帮忙找下错误,谢谢

#include "stdio.h"
#define MAX 80
#define CHANGE1
main()
{
char str[MAX];
int i;
gets(str);
#if(CHANGE)
{for(i=0;i<MAX;i++)
{
if(str[i]!='\0')
if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z')
str[i]=str[i]+1;
}
}
#endif
printf("\n%s\n",str);
printf("\n");
getch();
}

最佳答案
  • 五星知识达人网友:逃夭
  • 2021-04-12 09:40

#define CHANGE1这个错误,应该加个空格:#define CHANGE 1;这样就ok了

全部回答
  • 1楼网友:迟山
  • 2021-04-12 11:25

重写了一个:你关键是没有写成下一个字母如何实现!

#define CHANGE 1

main()

{char str[80],*c;int i=0;

gets(str);c=str;

while(*c!=’\0’)

{

#if CHANGE

if(*c==90||*c==122) *c=*c-25;

else if(*c>=65&&*c<90||*c>=97&&*c<122) *c=*c+1;

#endif

c++;

}

puts(str);

}

  • 2楼网友:山河有幸埋战骨
  • 2021-04-12 09:51
#include "stdio.h" #define MAX 80 #define CHANGE 1//CHANGE和1之间加空格 main() { char str[MAX]; int i; gets(str); #if(CHANGE) {for(i=0;i<MAX;i++) { if(str[i]!='\0') if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&str[i]<='Z') str[i]=str[i]+1; } } #endif printf("\n%s\n",str); printf("\n"); getch(); }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯