上机内容:编程序输出各种星号图
上机目的:锻炼分析问题的能力
我的程序:
/*
* 程序的版权和版本声明部分:
* Copyright (c) 2011, 烟台大学计算机学院
* All rights reserved.
* 文件名称:01.cpp
* 作 者:陆文飞
* 完成日期:2012 年 10 月 02 日
* 版 本 号:v1.0
* 对任务及求解方法的描述部分:
* 输入描述:无
* 问题描述:熟悉C++循环结构
* 程序输出:看运行结果
* 问题分析:略
* 算法设计:略
*/
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入n值:"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
cout<<"*";
}
cout<<endl; //先打完一行星号再换行
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入n值:"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
for(j=0;j<=n-i;j++)
{
cout<<"*";
}
cout<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入n值:"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
cout<<" ";
} //打完一行空格接着再打一行星号最后换行
for(j=0;j<=n-i;j++)
{
cout<<"* ";
}
cout<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入行数n:"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
for(j=0;j<=n-i;j++)
{
cout<<" ";
}
for(j=0;j<=i-1;j++)
{
cout<<"* ";
}
cout<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入行数n:"<<endl;
cin>>n;
for(i=1;i<=n;i++)
{
for(j=0;j<=n-i;j++)
{
cout<<" ";
}
for(j=0;j<=i-1;j++)
{
cout<<"* ";
}
cout<<endl;
}
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入行数n:"<<endl;
cin>>n;
for(i=1;i<n;i++)
{
cout<<" ";
}
cout<<"*"<<endl;
for(i=2;i<n;i++)
{
for(j=0;j<n-i;j++)
{
cout<<" ";
}
cout<<"*";
for(j=0;j<2*(i-1)-1;j++)
{
cout<<" ";
}
cout<<"*"<<endl;
}
for(j=0;j<=2*i-2;j++)
{
cout<<"*";
}
cout<<endl;
return 0;
}
#include <iostream>
using namespace std;
int main()
{
int i,j,n;
cout<<"请输入行数n:"<<endl;
cin>>n;
for(i=0;i<=n;i++)
{
for(j=0;j<=n-i;j++)
{
cout<<" ";
}
for(j=1;j<=2*i-1;j++)
{
cout<<"*";
}
cout<<endl;
}
return 0;
}
运行结果:
心得体会:
这个题目折磨了我好多天了,每一个图形来来回回改了好几次,尤其是空心三角形,幸好每一次都有新的体会,做这样的题就是得有耐心,想不通就在纸上写写,不要一直盯着显示器想。
知识点总结:
1:我没用调用函数来写,只是一步步的来,所以在写for循环的时候图形是从左到右划还是从上到下画,尤其是菱形;
2:关于星号的等腰三角形,我们都知道2n-1是奇数,但往往好用星号加空格的惯性思维即”* ”或者在for循环的括号里写下逗号运算符i++,i++即i=i+2;
3:其实就是第2点中的问题吧。写等腰三角形的时候,要考虑第二行是两个还是三个星号的问题,如果用星号加空格,就面临你输入行数n的值减少了一半,即行数减少了一半。
4:思维要清晰,运行的时候观察左下角的星号是否从最左边开始写的,这就要看for循环的判断条件了。
5:要看清在哪个位置写上endl。