| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1332 人关注过本帖
标题:c primer plus 第六章循环的第 14 题
取消只看楼主 加入收藏
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
结帖率:93.75%
收藏
已结贴  问题点数:9 回复次数:8 
c primer plus 第六章循环的第 14 题
题目为:14.编写一个程序读入一行输入,然后反向打印该行。您可以把输入存储在一个char数组中;假定该行不超过255个字符。回忆一下,您可以使用具有%c说明符的scanf()从输入中一次读入一个字符,而且当您按下回车键时会产生换行字符(\n)。
可我发现用%c来输入根本没法做,用%s的话很简单。程序不知道要输入几个字符。除非指定了要输入多少字符,像下面这样,而且题目的最后一句我不理解是什么意思。难道就是说用%c来做的时候,不足的元素用空格或者回车来代替吗?
程序代码:
#include<stdio.h>
#define LENGTH 20
int main(void)
{ 
char a[255]; 
int i; 
for(i=0;i<LENGTH;i++) 
scanf("%c",&a[i]); 
for(i=LENGTH-1;i>=0;i--) 
printf("%c",a[i]); 
printf("\n"); 
return(0);
}
搜索更多相关主题的帖子: 元素 而且 
2014-09-09 18:55
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 2 楼 erty1001
while(scanf("%c",letter[i])!='\n')
这样吗,可是为什么我这样用程序会崩溃
程序代码:
#include<stdio.h>
int main(void)
{
    char letter[255];
    int i=0,j;
    printf("Please enter what you want.\n");
    
    while(scanf("%c",letter[i])!='\n')
        i++;
        for(j=i;j>=0;j--)
    printf("%c",letter[j]);


}
2014-09-09 23:12
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 10 楼 TonyDeng
只能用for和while或者do while来做
2014-09-09 23:13
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 11 楼 hackrol
只能用for while do while来做
2014-09-09 23:13
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 15 楼 hackrol
为什么要加&,好像书上说char不用加&
2014-09-09 23:28
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 15 楼 hackrol
我知道了,是我自己看错了,是数组才不加&,字符是要加的
2014-09-09 23:30
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 15 楼 hackrol
还是没解决啊,不打印,按了回车不执行打印
2014-09-09 23:42
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
回复 2 楼 erty1001
我发现没办法结束循环,按下回车键while循环不会结束,会让我接着输入
2014-09-09 23:48
ctl184762651
Rank: 1
等 级:新手上路
帖 子:56
专家分:0
注 册:2014-5-31
收藏
得分:0 
我已经漂亮解决

程序代码:
#include<stdio.h>
int main(void)
{
char letter[255];
int i=0,j;
printf("Please enter what you want.\n");
scanf("%c",&letter[i]);


while(letter[i]!='\n'){

           i++;
scanf("%c",&letter[i]);
}
i--;
for(j=i;j>=0;j--)
printf("%c",letter[j]);

return 0;


}
2014-09-10 14:10
快速回复:c primer plus 第六章循环的第 14 题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022616 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved