一、使用所见即所得的方法绘制
直接上代码,运行效果见下图:
/*
* 所见即所得的绘制方法
* 缺点:不灵活、不易修改
* 优点:直观、简单
*/
#include <stdio.h>
int main ( void )
{
// 绘制正方形
printf ( "\n" );
printf ( "* * * * * \n"
"* * * * * \n"
"* * * * * \n"
"* * * * * \n"
"* * * * * \n" );
// 绘制长方形
printf ( "\n" );
printf ( "* * * * * \n"
"* * * * * \n"
"* * * * * \n" );
// 绘制直角三角形
printf ( "\n" );
printf ( "* * * * * \n"
"* * * * \n"
"* * * \n"
"* * \n"
"* \n" );
// 绘制菱形
printf ( "\n" );
printf ( " * \n"
" * * * \n"
"* * * * * \n"
" * * * \n"
" * \n" );
// 绘制圆形
printf ( "\n" );
printf ( " ** \n"
" * * \n"
" * * \n"
" * * \n"
"* *\n"
"* *\n"
"* *\n"
" * * \n"
" * * \n"
" * * \n"
" ** \n" );
return 0;
}
这种方法的缺点是:不灵活、不易修改。其优点是:直观、简单。
运行效果图如下:
二、使用控制结构
1、绘制矩形、三角形、菱形
矩形:在知道需要输出的规格后,按行打印输出。比如需要打印5*5的矩形,可以直接使用嵌套的循环语句来控制行列数:
rows = 5;
for( i=0; i<rows; i++ )
{
for( j=0; j<rows; j++ )
printf( "* " );
printf( "\n" );
}
三角形和菱形:和矩形类似,只是每行*号的起始位置和个数不同
下面是完整的代码:
// 12.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
/*
* 使用控制结构绘制图形
*/
#include <stdio.h>
int main ( void )
{
int rows, cols;
int i, j;
rows = 5;
cols = 8;
// 绘制正方形
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<rows; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制长方形
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<cols; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制三角形1
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<=i; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制三角形2
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<rows-i; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制三角形3
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<rows-i-1; j++ )
printf ( " " );
for ( ; j<rows; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制三角形4
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
for ( j=0; j<rows-i-1; j++ )
printf ( " " );
for ( ; j<rows-i+2*i; j++ )
printf ( "* " );
printf ( "\n" );
}
// 绘制菱形
printf ( "\n" );
for ( i=0; i<rows; i++ )
{
int blanks, stars;
blanks = i<rows/2 ? rows/2-i : i-rows/2;
stars = i<=rows/2 ? 2*i+1 : 2*(rows-i-1)+1;
for ( j=0; j<blanks; j++ )
printf ( " " );
for ( j=0; j<stars; j++ )
printf ( "* " );
printf ( "\n" );
}
return 0;
}
/*
* 使用控制结构绘制图形
*/
运行效果图: