读书人

待大牛帮忙。该怎么解决

发布时间: 2013-03-17 13:48:31 作者: rapoo

待大牛帮忙。。。
#include<stdio.h>
int main()
{
char ch;
int num=0;
while(scanf("%c",&ch)!='/n')
{
if(ch='\n')
num++;
}
printf("%d",num);
}



就这么个题,我上面的代码哪里错了?出现这种问题,是我的什么原因造成的?以后我该怎么办???


Description
有一篇文章,共有三行文字,统计这篇文章中的空格数。

Input
输入该文章

Output
输出空格数

Sample Input
How are you?
Hello world.
It is a good problem.
Sample Output
7

[解决办法]
请搜索scanf的返回值
[解决办法]


#include <stdio.h>

int main(int argc, char* argv[])
{
char ch;
int num = 0;
int rs = 0;

while(1)
{
scanf("%c", &ch);
if(ch == ' ') num++;
if(ch == '\n')
if(++rs >= 3) break;
}

printf("%d\n", num);
return 0;
}

[解决办法]
\n不是空格符是换行,赋值的是“=”,判断相等的是“==”,具体代码参见楼上
[解决办法]

#include<stdio.h>
int main()
{
char ch;
int num=0;
while(scanf("%c",&ch)!='/n') // 1:‘\n’ 2:scanf 返回值1L已提示,2L已更正
{
if(ch='\n')
num++;
}
printf("%d",num);
}


[解决办法]
/和\不是一回事!

关于自己是否适合编程的很简单的测试:
在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案:

A里面有10处以上文字或标点错误
B里面没有文字或标点错误并敢为此跟人打赌
C里面没有文字或标点错误并且字体和排版完全与原稿一致
D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感

A不适合编程(理由:打字准确度偏低、粗心大意)
B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念)
C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证)
D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!)

如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”

[解决办法]
首先,看题目要求肯定至少要有两个计数的变量,一个用于统计空格数便于输出结果,一个用来统计“\n"字符便于检测到第三个换行符后停止程序。
其次,if中用判等号”==“而不是赋值号。
最后,就是大家说的"\"的问题。
我觉得你需要注意的就是要认真考虑理清思路,不是所有的程序都是检测到换行符就结束的,这个不止一行输入的可以通过统计换行次数来控制其实是一样的道理,思路有了注意细节就可以了
第一次这么认真的回答问题。。。

读书人网 >C++

热点推荐