内容:打印出题目要求图形
目的:掌握for循环
程序代码:
/* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:匡效国 * 完成日期:2013 年 4 月 11 日 * 版 本 号:v1.0 * * 对任务及求解方法的描述部分: * 输入描述:循环输入整数n,输入0时结束 * 问题描述:要求输入n的值,按照图形的打印规则打印出相关的图形 * 具体图形见程序运行结果 * 程序输出:见下图 * 问题分析:略 * 算法设计:略 */ #include <iostream> using namespace std; int main() { int n,i,j,k;//n为输入的数字,i,j,k用来循环 while(cin>>n) { if(n==0) break; for(i=1;i<=n;i++)//第一次循环n次,输出上半部分 { for(k=1;k<=n-i;k++) cout<<" "; cout<<"+"; if(i!=1)//因为在第一行不能输出*,所以用一个if语句 { for(j=3;j<=2*i-1;j++) cout<<"*"; cout<<"+"; } cout<<endl; } for(i=1;i<=n-1;i++)//第二次循环n-1次,输出下半部分 { for(k=1;k<=i;k++) cout<<" "; cout<<"+"; if(i!=n-1)//此处在最后一行也不能输出*,再用if语句控制 { for(j=2;j<=2*(n-i-1);j++) cout<<"*"; cout<<"+"; } cout<<endl; } } return 0; }
运行结果:
感悟:for循环不是太难掌握,多做一些类似的题目就很简单了
说明:为使读者容易明白程序的输出,所以对题目稍作改动,原题为输入一个数n,这里是循环输入n,以0结束
题目来源: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1135