原题是这样的:从键盘输入一行字符(少于20个),将其中的小写改成大写(其他字符保持不变),并将转换后的字符输出,输入#结束。 为了实现输入超过20个,也显示前20个,是不是得用数组呀??怎么用啊?我对题意的了解,没错吧? 我是这样做的 #include<stdio.h> int main() { int c[20]; printf("Please enter a character:"); while((c[20]=getchar())!='#') if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0;
} 无法实现这个功能呀?请问前辈么,这个怎么办?????
最新回答
冰月灵狐
2024-11-26 08:27:24
#include<stdio.h> int main() { int c[20]; printf("Please enter a character:"); while((c[20]=getchar())!='#')/*这里用c[20]等于将输入的字符直接赋值给下标为20的哪个数组元素也就是说你的C[0]到c[19]都没赋值,而且你要输入的是20个元素而c[20]是第21个元素了, 再有就是while后面如果没有其他语句就应该加一个 ; 符号表示执行一个空语句*/ if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0;
} #include<stdio.h> int main() { int c[20]; int ch,i=0; printf("Please enter a character:"); while((ch=getchar())!='#') { c[i]=ch; i++; } if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0;
}
你的剧情像迷途
2024-11-26 08:16:05
#include int main() { int c[20]; printf("Please enter a character:"); while((c[20]=getchar())!='#')/*这里用c[20]等于将输入的字符直接赋值给下标为20的哪个数组元素也就是说你的C[0]到c[19]都没赋值,而且你要输入的是20个元素而c[20]是第21个元素了, 再有就是while后面如果没有其他语句就应该加一个 ; 符号表示执行一个空语句*/ if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0; } #include int main() { int c[20]; int ch,i=0; printf("Please enter a character:"); while((ch=getchar())!='#') { c[i]=ch; i++; } if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0; }
梦中梦
2024-11-26 08:01:31
这道题有好多种解法,你的想法不错,只是数组没有用对,楼上已经指出了,这里不多说了。你用了getchar()和putchar()函数,这题不用数组也能解决,程序如下: #include int main() { int c,i=1; printf("Please enter a character:\n"); while((c=getchar())!='#') { if(c>='a'&&c<='z') putchar(c-'a'+'A'); else putchar(c); i++; if (i==20) break; } printf("\n"); return 0; } getchar()函数把接收的字符存入缓存区,当输入结束时,调用putchar()函数,从缓存区按输入的顺序一个字符一个字符的输出。若实现输入超过20个,也显示前20个,只要让函数输出前二十个就可以了。加一个判断语句就行了。 回答完毕。
叫我饭桶!
2024-11-26 08:21:22
这道题有好多种解法,你的想法不错,只是数组没有用对,楼上已经指出了,这里不多说了。你用了getchar()和putchar()函数,这题不用数组也能解决,程序如下: #include<stdio.h> int main() { int c,i=1; printf("Please enter a character:\n"); while((c=getchar())!='#') { if(c>='a'&&c<='z') putchar(c-'a'+'A'); else putchar(c); i++; if (i==20) break; } printf("\n"); return 0; } getchar()函数把接收的字符存入缓存区,当输入结束时,调用putchar()函数,从缓存区按输入的顺序一个字符一个字符的输出。若实现输入超过20个,也显示前20个,只要让函数输出前二十个就可以了。加一个判断语句就行了。 回答完毕。
素婉纤尘
2024-11-26 08:27:41
#include<stdio.h> int main() { int c[20]; printf("Please enter a character:"); while((c[20]=getchar())!='#')/*这里用c[20]等于将输入的字符直接赋值给下标为20的哪个数组元素也就是说你的C[0]到c[19]都没赋值,而且你要输入的是20个元素而c[20]是第21个元素了, 再有就是while后面如果没有其他语句就应该加一个 ; 符号表示执行一个空语句*/ if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0; } #include<stdio.h> int main() { int c[20]; int ch,i=0; printf("Please enter a character:"); while((ch=getchar())!='#') { c[i]=ch; i++; } if(c[20]>='a'&&c[20]<='z') putchar(c[20]-'a'+'A'); else putchar(c[20]); printf("\n"); return 0; }