标题:[求助]这个程序错哪了啊?
只看楼主
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
 问题点数:0 回复次数:11 
[求助]这个程序错哪了啊?
题目是:输入的一行字符,要求将每个单词的第一个字母都改成大字字母

# include<stdio.h>
# include<string.h>
main( )
{
int i,n;
char word[20];
printf("Please input a line text(English)......\n");
gets(word);
n=strlen(word);
for(i=0;i<=n;i++);
{
if(word[i]=='')
word[i+1]=word[i+1]-32; /*将空格后的字符转换成在写字母*/
}
word[0]=word[0]-32;
printf("%s",word);
getch( );
}

这是个练习册上的问题!答案看了N遍了!人家写的确实不错,可我就是不知道自己错在哪了!
这个程序只能将第一个输入的字符转换成大写,剩下的都是原样输出了!
因为是自学,所以不懂的地方只能拿出来!自己是弄不了了!从昨天下午就开始想了!
在这里先谢了!
搜索更多相关主题的帖子: 字母 include 练习册 
2006-04-07 10:07
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
得分:0 

没人理我吗?

2006-04-07 10:36
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
以下是引用疯狂VC在2006-4-7 10:07:00的发言:
题目是:输入的一行字符,要求将每个单词的第一个字母都改成大字字母

# include<stdio.h>
# include<string.h>
main( )
{
int i,n;
char word[20];
printf("Please input a line text(English)......\n");
gets(word);
n=strlen(word);
for(i=0;i<=n;i++);
{
if(word[i]=='')
word[i+1]=word[i+1]-32; /*将空格后的字符转换成在写字母*/
}
word[0]=word[0]-32;
printf("%s",word);
getch( );
}

这是个练习册上的问题!答案看了N遍了!人家写的确实不错,可我就是不知道自己错在哪了!
这个程序只能将第一个输入的字符转换成大写,剩下的都是原样输出了!
因为是自学,所以不懂的地方只能拿出来!自己是弄不了了!从昨天下午就开始想了!
在这里先谢了!

有錯嗎?
我怎麽能運行呢!
結果也正確呀!

2006-04-07 10:39
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
得分:0 

不是吧

我在WIN-TC上面运行的时候只能得到输入语句的第一个字母变成在写
例如:输入i am a boy
输出的是I am a boy
这个题目要求的是将每个单词的第一个字母都变成在写的!


2006-04-07 11:06
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
是我看錯題了。我以爲只把首寫字母變成大寫。
2006-04-07 11:23
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
得分:0 

那这个程序错在哪了呢?


2006-04-07 11:29
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
以下是引用疯狂VC在2006-4-7 10:07:00的发言:
题目是:输入的一行字符,要求将每个单词的第一个字母都改成大字字母

# include<stdio.h>
# include<string.h>
main( )
{
int i,n;
char word[20];
printf("Please input a line text(English)......\n");
gets(word);
n=strlen(word);
for(i=0;i<=n;i++);  /*for語句後面打一個分號幹嘛。。空循環啦*/
{
if(word[i]=='')
word[i+1]=word[i+1]-32; /*将空格后的字符转换成在写字母*/
}
word[0]=word[0]-32;
printf("%s",word);
getch( );
}

这是个练习册上的问题!答案看了N遍了!人家写的确实不错,可我就是不知道自己错在哪了!
这个程序只能将第一个输入的字符转换成大写,剩下的都是原样输出了!
因为是自学,所以不懂的地方只能拿出来!自己是弄不了了!从昨天下午就开始想了!
在这里先谢了!

我倒。。。
找了半天,是它。。

2006-04-07 11:31
wzl520
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-3-30
得分:0 
#include<stdio.h>
#include<string.h>
main( )
{
int i,n;
char word[20];
printf("Please input a line text(English)......\n");
gets(word);
n=strlen(word);
for(i=1;i<=n;i++)
{
if(word[i]==' ')
word[i+1]=word[i+1]-32; /*将空格后的字符转换成在写字母*/
}
word[0]=word[0]-32;
printf("%s",word);
getch();
}
这样应该就可以可

No pain No gain
2006-04-07 11:34
ヤ順祺冄繎ヤ
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:3032
专家分:0
注 册:2005-11-9
得分:0 
還有if(word[i]=='')是判斷是否爲空格,
你應該在裏面打一空格或者讓他等於32。
2006-04-07 11:35
疯狂VC
Rank: 1
等 级:新手上路
威 望:1
帖 子:375
专家分:0
注 册:2006-3-29
得分:0 

OK啦

谢谢了!

不过那个for后面的分号我在第二遍编译的时候去掉了,不小心给复制上去了!是我的不小心让你们受累了!!
对不起啊!!


2006-04-07 11:45



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-55721-1-1.html




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

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