主题:C语言怎么样用for嵌套打出菱形??? 求教!
sszq123
[专家分:0] 发布于 2010-08-08 22:25:00
回复列表 (共6个回复)
沙发
cgl_lgs [专家分:21040] 发布于 2010-08-08 22:49:00
两重循环:
外层有多少行就循环多少次;
内层有两个并列的循环,一个输出空格,另一个输出符号。
如果需要的是空心菱形,则内层循环需要三个并列循环。
板凳
sszq123 [专家分:0] 发布于 2010-08-09 00:09:00
代码才是硬道理啊!
3 楼
Screenager [专家分:840] 发布于 2010-08-09 00:59:00
实心菱形:
#include <iostream>
using namespace std;
int abs(int i){
if(i<0)i=-i;
return i;
}
int main()
{
const int N=11;
for(int i=-N/2;i<=N/2;i++){
for(int j=0;j<abs(i);j++)
cout<<" ";
for(int k=0;k<N-2*abs(i);k++)
cout<<"*";
cout<<endl;
}
return 0;
}
空心菱形:
#include <iostream>
using namespace std;
int main()
{
const int N=11;
char a[N][N]={' '};
for(int i=0;i<N/2;i++){
a[i][N/2-i]='*';
a[i][N/2+i]='*';
}
for(int i=N/2;i<N;i++){
a[i][i-N/2]='*';
a[i][N-i+N/2-1]='*';
}
for(int i=0;i<N;i++){
for(int j=0;j<N;j++)
cout<<a[i][j];
cout<<endl;
}
return 0;
}
//N必须是奇数
4 楼
sszq123 [专家分:0] 发布于 2010-08-09 09:45:00
汗,我还没学c++啊,不过还是谢谢你,看懂算法就行了!
5 楼
cgl_lgs [专家分:21040] 发布于 2010-08-09 16:16:00
呵呵,这么简单的问题,必须自己写才行的,除非你打算考完试就把这东西扔了:)
我来回复