解题思路:用getchar()函数来实现字符密码翻译:一个元素一个元素进行判断
注意事项:'z' 'Z' 需要考虑如何转换,用ASCII码转换:‘Z’-25 = ‘Z’ 同理‘z’可知。
参考代码:
#include<stdio.h> int main() { char c; while((c=getchar())!='\n') if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) { if(c=='z'||c=='Z') { c=c-25; } else { c = c + 1; } printf("%c",c); } else { printf("%c",c); } return 0; }
0.0分
2 人评分
贴个通过的 #include <stdio.h> #include <string.h> int main(int argc,const char *argv[]) { char a[1000]; gets(a); int len; len=strlen(a); int i; for(i=0;i<len;i++){ if(a[i]>='a'&&a[i]<'z'||a[i]>='A'&&a[i]<'Z'){ a[i]+=1; }else if(a[i]=='z'||a[i]=='Z'){ a[i]-=25; } } a[i]='\0'; puts(a); return 0; }
#include <stdio.h> #include <string.h> char Secret(char str[]) { int len, i; len = strlen(str); for(i = 0; i < len; i++) { if((str[i] >= 'a' && str[i] < 'z') || (str[i] >= 'A' && str[i] < 'Z')) str[i] = str[i] + 1; else if(str[i] == 'z' || str[i] == 'Z') str[i] = str[i] - 25; } } int main(void) { char str1[10]; int i, len; gets(str1); len = strlen(str1); Secret(str1); for(i = 0; i < len; i++) printf("%c", str1[i]); return 0; } 有没有大佬帮忙看看为什么运行错误50% 啊?
#include<stdio.h> int main() { char a; while((a=getchar())!='\n') if((a>='a'&&a<'z')||(a>='A'&&a<'Z')) { a=a+1; printf("%c ",a); } else { a=a-25; printf("%c",a); } printf("\n"); return 0; } 输出超限啥意思????
#include<cstdio> char sch[]="abcdefghijklmnopqrstuvwxyz"; char bch[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; int main(){ int i; char c; while((c = getchar()) != '\n'){ if(c<='z'&&c>='a'){ for(i=0;sch[i]&&sch[i]!=c;i++); if(sch[i]) putchar(sch[(i+1)%26]); } else if(c<='Z'&&c>='A'){ for(i=0;bch[i]&&sch[i]!=c;i++); if(bch[i]) putchar(bch[(i+1)%26]); } else putchar(c); } printf("\n"); return 0; }
#include<stdio.h> #include<string.h> int main() { char s[1000]; gets(s); int len = strlen(s); char *p_s = s ; for(int i = 0 ; i < len ; i ++) { if(*p_s >= 'a' && *p_s <= 'y') *p_s = *p_s+ 1; else if(*p_s == 'z') *p_s = 'a' ; p_s ++ ; } puts(s); return 0; }
#include<stdio.h> #include<string.h> void main(){ char a[100]; scanf("%s",&a); for(int i=0;i<strlen(a);i++){ if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){ if(a[i]=='z'||a[i]=='Z'){ a[i]=a[i]-25; }else{ a[i]=a[i]+1; } } printf("%c",a[i]); } printf("\n"); } 看着没错啊 通不过
感觉用gets()更简单 #include <stdio.h> #include <string.h> int main() { char str[100]; gets(str); for(int i=0; i<strlen(str); i++) { if(str[i]>='a'&&str[i]<='z') str[i]+=1; } puts(str); return 0; }
蓝姬的巢 2019-01-05 22:00:50 |
错了吧?z和Z+1就不是字母了
cpython3 2019-01-05 22:12:19 |
知道这个,但是可以测试通过,属于OJ不严谨而已。
cpython3 2019-01-05 22:12:33 |
@xjwcharles 知道这个,但是可以测试通过,属于OJ不严谨而已。
蓝姬的巢 2019-01-06 16:24:29 |
@smartZhou 晕,看来评定系统不是很严谨
柏木英理 2019-02-01 12:47:39 |
从理解题目而言,我认为这道题是要输入一行字符,而不是字符串,而且你这个程序尽管测试通过,但就是错的啊
cpython3 2019-02-02 23:07:44 |
@bomuovo 额...
cpython3 2019-02-02 23:08:05 |
@bomuovo 额...
豆豆哦 2019-02-17 18:52:28 |
#include<stdio.h> #include<string.h> void main(){ char a[100]; scanf("%s",&a); for(int i=0;i<strlen(a);i++){ if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){ if(a[i]=='z'||a[i]=='Z'){ a[i]=a[i]-25; }else{ a[i]=a[i]+1; } } printf("%c",a[i]); } printf("\n"); }哪里有错啊
菜农 2019-03-21 16:41:08 |
#include<stdio.h> #include<string.h> int main() { char s[1000]; gets(s); int len = strlen(s); char *p_s = s ; for(int i = 0 ; i < len ; i ++) { if(*p_s >= 'a' && *p_s <= 'y') *p_s = *p_s+ 1; else if(*p_s == 'z') *p_s = 'a' ; p_s ++ ; } puts(s); return 0; }
cpython3 2019-03-22 23:24:49 |
声明本人此答案是不正确的,但确实能通过测试。系统测试数据不全面,高手忽喷...谢谢。