c语言的编程问题:关于for循环
这是我写的代码:#include<stdio.h>intmain(){charc1,c2;inti;for(i=1;i<=100;i++){printf("请输入一个大写...
这是我写的代码:
#include<stdio.h>int main(){char c1,c2; int i;for(i=1;i<=100;i++){ printf("请输入一个大写字母\n"); scanf("%c",&c1);
c2=c1+32; printf("该大写字母对应的小写字母为\n%c\n",c2);} return 0;}
运行后输入一个大写字母后自动就会跳出一个新的"请输入大写字母 该大写字母为(星号)"
这是为什么呢?
还有就是直接在最开始按回车键,执行后输出“星号”,星号ASKII码为45,line feed(换行)为32,就是说为什么for循环第一轮输入的“A”+“回车”,在第二轮循环中直接就把“回车”扫描了?还有就是回车键在c语言中是line feed(ascii码为10)还是carriage return(ascii码为13)? 展开
#include<stdio.h>int main(){char c1,c2; int i;for(i=1;i<=100;i++){ printf("请输入一个大写字母\n"); scanf("%c",&c1);
c2=c1+32; printf("该大写字母对应的小写字母为\n%c\n",c2);} return 0;}
运行后输入一个大写字母后自动就会跳出一个新的"请输入大写字母 该大写字母为(星号)"
这是为什么呢?
还有就是直接在最开始按回车键,执行后输出“星号”,星号ASKII码为45,line feed(换行)为32,就是说为什么for循环第一轮输入的“A”+“回车”,在第二轮循环中直接就把“回车”扫描了?还有就是回车键在c语言中是line feed(ascii码为10)还是carriage return(ascii码为13)? 展开
5个回答
展开全部
是scanf("%c",&c1);读入回车了,改成这样
#include<stdio.h>
int main()
{
char c1,c2; int i;
for(i=1;i<=100;i )
{
printf("请输入一个大写字母\n"); gets(&c1);/*这行改一下*/
c2=c1 32; printf("该大写字母对应的小写字母为\n%c\n",c2);
}
return 0;
}
#include<stdio.h>
int main()
{
char c1,c2; int i;
for(i=1;i<=100;i )
{
printf("请输入一个大写字母\n"); gets(&c1);/*这行改一下*/
c2=c1 32; printf("该大写字母对应的小写字母为\n%c\n",c2);
}
return 0;
}
追问
谢谢!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看一下C语言的输入输出缓冲吧。你输入A+回车 第一次循环读取A,然后继续循环,此时查看缓冲区是否有内容,若有(此例中为回车),读取并处理。
可以通过刷新缓冲区或者getchar()方法解决。刷新缓冲区,清空缓冲内容。getchar则是读取一个字符(本例中回车)并丢弃
可以通过刷新缓冲区或者getchar()方法解决。刷新缓冲区,清空缓冲内容。getchar则是读取一个字符(本例中回车)并丢弃
追问
您答的比较高端,,,我这个初学者看不大懂。。。不好意思哈~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为回车键也是一个字符啊!所以你把输入改成 scanf("%c\n",&c1);应该就可以了,这样读入时直接读入一个回车,就不算字符了。
回车键的ascii码是视编译器而定,对于你这个编译器,应该是12吧
回车键的ascii码是视编译器而定,对于你这个编译器,应该是12吧
追问
前面那么改不行。。。上机看看~~~后面关于ascii码不应该是10吗?因为后面是c2=c1+32呀,星号是42,所以不就是10嘛~~~?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
int main()
{char c1,c2;
int i;
for(i=1;i<=100;i++)
{
printf("请输入一个大写字母\n");
scanf(" %c",&c1); //前面加空格
c2=c1+32;
printf("该大写字母对应的小写字母为\n%c\n",c2);
}
return 0;
}
更多追问追答
追问
这是什么程序呀?看起来好好看~。还有,为什么在前面加个空格就行了?原理是什么?
追答
避免读进回车
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
printf在for循环里面 ,循环一次 运行一次,当然会每次都出现“请输入一个大写字母”了
追问
我说的是输入一次,它循环了2次,看清题目哦~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询