C++语言关于while语句的具体讲解 Help me,please!
最佳答案
noi.openjudge.cn上的题吧,
st是一个你定义的字符数组;
“==1”相当于为真“==true”也可以直接省略(在这道题中不可行)(如果想判断不为真的话可以写作“==0”或“==false”或省略掉并在前面加一个“!”例:判断a是否为假,可以用“!a”来表示(全为英文字符))(这句while语句的意思是当一直在读入时(或说文件未结束时));
你这个程序如果出现两个空格之间的字符大于200就失败了;
给你个我的程序
#include<bits/stdc++.h>
using namespace std;
int main()
{
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
string s;
while(cin>>s)
cout<<s<<' ';
//fclose(stdin);
//fclose(stdout);
return 0;
}
(手动测试时可以用Ctrl+Z来终止文件,显示为^Z)
追答:详解:你的程序中的第一句是定义,上文提到了while(scanf("%s",&st)==1);有多个用途读入部分(scanf("%s",&st))的意思是读入字符串,读到空格停止(空格自动忽略)并存到st中;while是一直循环,直到条件不成立为止(0,false,否……都为不成立;非零,-∞到∞之间,除了零,都为真(成立,true))在此程序中指输入文件未结束(!EOF)下一行,printf("%s ",st);是指以输出st,st是%s类的(字符数组类)(上一行读入的),以“%s ”的格式输出(意思为输出st+空格)。后面的和头文件等就不多说了
追问:
你能给我你的联系方式吗?我才刚刚入门 是个学生,你能帮我吗?
追问:
对 就是noi上的题 我做练习的网站还一个叫OJ 的 追答:
qq2923925664,有qq邮箱或邮箱W.x.jian@outlook.com有可能等好久才回哦告诉我你填的验证信息我才会同意
追问:
那没事的,我已经加了,验证信息是 360问答用户 谢谢了
其他回答
其它网友回答:
1.scanf是有返回值的,,返回值为读取成功的个数
其它网友回答:
2.st看做字符串
其它网友回答:
3.,while循环读取成功一个之后输出,读取失败直接结束程序。
其它网友回答:
st是C语言数组变量的定义,也算是较基础的语法(教材上有详细介绍的)
其它网友回答:
while是循环,条件是scanf返回1(也就是正常输入,直到出错或EOF)
其它网友回答:
而因为scanf本身接收数据时,以空格为间隔,且会忽略其它空格的,所以正好用来完成题目要求
其它网友回答:
而循环中,输出收到的字串并在每个串后面加一个空格
其它网友回答:
程序是入门级的,所以建议你先从教材学习下基础的理论
其它网友回答:
追问:
你能告诉我你的联系方式吗?
追问:
我是刚刚初升高的学生,现在暑假在学习计算机;
追问:
你能帮助我吗?
追答:
我以前也跟与你相同的学生说过,初中学习编程没有什么意义的(他说是可以加分的) 有精力不如放在基础课的学习上,完全可以比编程有更高的进步 只有两种人,个人推荐在初中学习编程,一是有天赋的,二是有极端兴趣的
追问:
我是已经算是高中生了,现在的大学都有自主招生,只要在奥赛中获得一等奖,就可以获得名牌大学自主招生的名额,我们现在学习计算机,就是为了奥赛打基础,也是为了以后高考打基础。
追问:
只是现在的时间有点紧,老师飞一般的上课,而我又是刚刚接触计算机,很难一下子接受,所以需要帮助