两个不会的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) 展开
#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) 展开
2个回答
展开全部
(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 同样的道理是为了多输出第二个,达到等腰的效果。
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++运算符吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询