问题及代码:
/*
*Copyright(c)2014,烟台计算机学院
*All rights reserved
*文件名称:test.cpp
*作者:曾建强
*完成日期:2014年10月26日
*版本号:v1.0
*
*问题描述:自选星号图,编程输出
*输入描述:一个数,即想要的星号图行数
*程序输出:输出一个星号图
*/
图案1:
#include <iostream>
using namespace std;
int main()
{
int i,j,m;
cout << "请输入所需星号图的行数:";
cin >>m;
for (i=1; i<=m;i++)
{
for (j=1; j<=2*(m-i)+1; j++)
cout << "*";
cout <<endl;
}
cout <<endl;
return 0;
}
运行结果:
图案2:
#include <iostream>
using namespace std;
int main()
{
int i,j,m,n;
cout << "请输入所需星号图行数:";
cin >>m;
for (i=1; i<=m; i++)
{
for (n=1; n<=m-i; n++)
{
cout << " ";
}
for (j=1; j<=i; j++)
{
cout << "*";
}
cout <<endl;
}
return 0;
}
运行结果:
图案3:
#include <iostream>
using namespace std;
int main()
{
int i,j,m,n;
cout << "请输入所需星号图行数:";
cin >>m;
for (i=1; i<=m; i++)
{
for (n=1; n<=i; n++)
{
cout << " ";
}
for (j=1; j<=2*(m-i)+1; j++)
{
cout << "*";
}
cout<<endl;
}
cout <<endl;
return 0;
}
运行结果:
图案4:
#include <iostream>
using namespace std;
int main()
{
int i,j,m,n;
cout << "请输入所需星号图行数:";
cin >>m;
for (i=1;i<=m;i++)
{
for (n=1;n<=m-i;n++)
{
cout<< " ";
}
for (j=1;j<=2*i-1;j++)
{
cout<< "*";
}
cout<<endl;
}
return 0;
}
运行结果:
图案5:
#include <iostream>
using namespace std;
int main( )
{
int i,j,m;
cout << "请输入所需星号图行数:";
cin >>m;
for(j=1; j<=m-1; j++)
{
cout<<" ";
}
cout<<"*"<<endl;
for(i=2; i<=m-1; i++)
{
for(j=1; j<=m-i; j++)
{
cout<<" ";
}
cout<<"*";
for(j=1; j<=2*i-3; j++)
{
cout<<" ";
}
cout<<"*"<<endl;
}
for(j=1; j<=2*m-1; j++)
{
cout<<"*";
}
cout<<endl;
return 0;
}
运行结果:
图案6:
#include <iostream>
using namespace std;
int main( )
{
int i,j,m;
cout << "请输入所需星号图行数:";
cin >>m;
for(i=1; i<=m; i++)
{
for(j=1; j<=m-i; j++)
{
cout<<" ";
}
for(j=1; j<=2*i-1; j++)
{
cout<<"*";
}
cout<<endl;
}
for(i=1; i<=m-1; i++)
{
for(j=1; j<=i; j++)
{
cout<<" ";
}
for(j=1; j<=2*(m-i)-1; j++)
{
cout<<"*";
}
cout<<endl;
}
return 0;
}
运行结果:
知识点总结:
无论是编写星号图还是点阵图,都是要先理清什么时候输出空格,什么输出星号。只要理清了思路,编写这类程序就变得简单了。
学习心得:
说句实话,编写这个程序的时候我就快要崩溃了,完全摸不着头脑。特别是后两个,程序写的更加复杂,后两个都占了我编写这六个程序的大部分时间。但是无论如何,毕竟是我把它们给写出来了。在这里,只想对自己说,加油,you can do it !!