两个不会的C++程序,第一题空填不来,第二题的第二个空不知道为什么是j>=5+i,求高人指点...

主函数调用一个fun函数将字符串逆序。#include<iostream.h>#include<string.h>___(1)___;voidmain(){chars[8... 主函数调用一个fun函数将字符串逆序。

#include<iostream.h>

#include<string.h>

___(1)___;

void main( ) {

char s[80];

cin>>s;

___(2)___;

cout<<”逆序后的字符串:”<<s<<endl
;

}

void fun(char ss[]) {

int n=strlen(ss);

for(int i=0; ___(3)____; i++) {

char c=ss[i];

ss[i]=ss[n–1–i];

ss[n–1–i]=c;

}

}

(1) (2) (3)

在输出屏幕上打印出一个由字符’*’组成的等腰三角形,该三角形的高为5行,从上到下每行的字符数依次为1,3,5,7,9。

#include<iostream.h>

void main()

{

int i,j;

for(i=1;___(1)___;i++) {

for(j=1;j<=9;j++)

if(j<=5-i || ___(2)___) cout<<’ ’;(为什么是j>=5+i)

else ___(3)___;

cout<<endl;

}

}

(1) (2) (3)
展开
 我来答
slatop
2013-04-26 · TA获得超过1390个赞
知道小有建树答主
回答量:381
采纳率:100%
帮助的人:430万
展开全部
(1)
void fun(char*);
(2)
fun(s)
(3)
i < n

(1)
i <= 5
(2)
j >= 5 + i
(3)
cout<<"*"

至于为什么是j>=5+i 是因为j的值是根据i在变化的,越向下就要输出的*越多。而第一次输出是在5个位置,也 就是中间的位置输出一次,然后每次循环重新输出一排时就要多输出两个星星,前面j<=5-i因为i每次加1所以每次多减了一个就多输出了一个,后面5+i 同样的道理是为了多输出第二个,达到等腰的效果。
更多追问追答
追问
j=5+i的时候,j等于1的时候不就直接跳出循环输出*了么?
追答
||是一个或运算,只要一边的值为真其结果就为真。当j为1是,左值已经为值,右值已经不再重要。去复习一下C++运算符吧
ababacc
2013-04-26
知道答主
回答量:60
采纳率:0%
帮助的人:24.7万
展开全部
(1) using namespace std;(2) i < n (3) fun(s)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式