使用C语言打印出一个菱形
2017-03-26 00:41
225 查看
使用C语言打印出一个菱形:
记得还是上C语课的时候,自己使用过一个比较笨的方法写过7行的实心菱形,但是今天一同学问我,让我帮他写这个程序时缺一时键不知到怎么写。然后自己就把这个算法模拟了一辩,使用了三种方法实现了打印菱形。
代码如下:
#include<iostream>
using namespace std;
void diomand(int r) // 打印空心菱形
{
for (int x=0; x <= 2 * r; x++)
{
for (int y=0; y <= 2 * r; y++)
{
if (y==x+r||y==x-r||y==-x+r||y==-x+3*r)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
// 方法一 分步打印
void rhombus(int len)
{
int i, j, k;
// int m = len / 2+1; // 记录前len/2+1行;
// 打印出前len/2+1行
for (i = 0; i <=len / 2 + 1; i++)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0; j < len / 2 + 1 - i; j++)
{
cout<<" ";
}
// 开始输出“*”
for (k = 0; k < 2 * i + 1; k++)
{
cout<<"*";
}
cout<<endl;
}
// 打印出后len/2-1行
for (i = len/2;i>=0; i--)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0; j <=len / 2 - i; j++)
{
cout << " ";
}
// 开始输出“*”
for (k = 0; k < 2 * i + 1; k++)
{
cout << "*";
}
cout << endl;
}
}
// 方法二: // 按条件输出“*”和“ ”
void rhombus2(int len)
{
for (int i = 0; i <len; i++)
{
for (int j = 0; j < len; j++)
{
if (i + j <= len/2-1 || (j - i >= len/2+1 || i - j >= len/2+1) || i + j >=len+len/2)
{
cout << " ";
}
else
{
cout << "*";
}
}
cout << endl;
}
}
int main(void)
{
int r = 0;
int m = 0;
cin >> r;
diomand(r); // 打印出空心菱形
// rhombus(7);
rhombus1(r); // 分步打印实心菱形
cin >> m;
rhombus2(m); // 按条件打印出实心菱形
return 0;
}
记得还是上C语课的时候,自己使用过一个比较笨的方法写过7行的实心菱形,但是今天一同学问我,让我帮他写这个程序时缺一时键不知到怎么写。然后自己就把这个算法模拟了一辩,使用了三种方法实现了打印菱形。
代码如下:
#include<iostream>
using namespace std;
void diomand(int r) // 打印空心菱形
{
for (int x=0; x <= 2 * r; x++)
{
for (int y=0; y <= 2 * r; y++)
{
if (y==x+r||y==x-r||y==-x+r||y==-x+3*r)
{
printf("*");
}
else
{
printf(" ");
}
}
printf("\n");
}
}
// 方法一 分步打印
void rhombus(int len)
{
int i, j, k;
// int m = len / 2+1; // 记录前len/2+1行;
// 打印出前len/2+1行
for (i = 0; i <=len / 2 + 1; i++)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0; j < len / 2 + 1 - i; j++)
{
cout<<" ";
}
// 开始输出“*”
for (k = 0; k < 2 * i + 1; k++)
{
cout<<"*";
}
cout<<endl;
}
// 打印出后len/2-1行
for (i = len/2;i>=0; i--)
{
// 光标移到每行开始输出“ ”的位置
for (j = 0; j <=len / 2 - i; j++)
{
cout << " ";
}
// 开始输出“*”
for (k = 0; k < 2 * i + 1; k++)
{
cout << "*";
}
cout << endl;
}
}
// 方法二: // 按条件输出“*”和“ ”
void rhombus2(int len)
{
for (int i = 0; i <len; i++)
{
for (int j = 0; j < len; j++)
{
if (i + j <= len/2-1 || (j - i >= len/2+1 || i - j >= len/2+1) || i + j >=len+len/2)
{
cout << " ";
}
else
{
cout << "*";
}
}
cout << endl;
}
}
int main(void)
{
int r = 0;
int m = 0;
cin >> r;
diomand(r); // 打印出空心菱形
// rhombus(7);
rhombus1(r); // 分步打印实心菱形
cin >> m;
rhombus2(m); // 按条件打印出实心菱形
return 0;
}
相关文章推荐
- 用C语言打印一个菱形
- 用C语言打印一个菱形
- 用C语言打印一个菱形
- 练习题009:C语言输出打印一个菱形
- C语言 打印一个用字符表示的菱形或正(倒)三角形
- 【C语言】使用递归的整数输出(高位到低位)/输出一个菱形(能够确定行数)
- 使用C语言输出一个边长为7的菱形!
- 打印一个菱形(C语言)
- 用c语言在屏幕上打印出一个菱形
- 【C语言】使用递归的整数输出(高位到低位)/输出一个菱形(能够确定行数)
- 使用C语言,利用for循环打印菱形(每个相邻菱形都要带空格)
- Java控制台打印一个菱形
- 使用jatoolsPrinter打印页面后通过window.close()出现的一个问题
- 打印一个菱形,用其他字符填充空白区域
- c语言如何输出一个菱形
- C语言:循环语句的使用 打印三角阵
- 1、使用快速枚举语法实现: //构建一个NSSMutableArray数组,用@”1”至@”100”进行填充。以NSLog依次打印数组中的内容,将此数组分为奇偶两数组,再打印两新数组中的元素。
- 俺使用的C语言面向对象范式(前言与第一节:一个简单类的封装)
- C语言打开一个文件(有内容),倒序打印出文件中的内容
- 一个for循环打印出菱形