黑马程序员技术交流社区
标题:
关于菱形输出的问题
[打印本页]
作者:
37°天黑
时间:
2015-4-9 22:11
标题:
关于菱形输出的问题
{:3_50:} 用C语言如何输出菱形啊?想了好久,我只能输出正三角形,求大神的详细解释!
作者:
37°天黑
时间:
2015-4-10 21:31
{:3_60:}没人吗,坐等啊!
作者:
綦敦涛
时间:
2015-4-10 21:41
#include <stdio.h>
#include <math.h>
//我要用abs函数;
int main(int argc, const char * argv[]) {
int row = 0;
printf("请输入想要打印的行数:");
// 由于输出的时菱形,所以行数恰好等于最多行的*个数;
scanf("%d",&row);
for(int i = 1;i<=row;i++) // 外循环,确定当前打印第几行
{
for(int j=0;j<abs((row+1)/2,i);j++) // 这个循环用于打印前面的空白; 当前行空白的个数与当前行的关系是abs((row+1)/2,i)
{
printf(" ");
}
int starCount =((row+1)/2-abs((row+1)/2,i))*2-1; // 当前行*的个数与行的关系是((row+1)/2-abs((row+1)/2,i))*2-1
for(int m = 0;m <starCount;m++) // 这个循环用于打印后面的*;
{
printf("*");
}
printf("\n");
}
return 0;
}
复制代码
有好方法,一定教我啊...
作者:
沐浴阳光@
时间:
2015-4-10 21:52
楼上思路不错,赞一个
作者:
丶浩浩丶
时间:
2015-4-10 23:00
#include <stdio.h>
int main(int argc, const char * argv[])
{
//
printf("请输入一个整数\n");
int x = 0;
scanf("%d",&x);
int y = x;
int y1 = 1;
//输出多少行
for (int i = 0; i<x; i++)
{
y--;
for (int a = y; a<=y&&a!=0; a--)
{
printf(" ");
}
//每行输出几个
for (int j = 0; j<=i; j++)
{
printf("* ");
}
printf("\n");
}
//-----------------------------------------------------------------------------
for (int i1 = x; i1<=x && i1!=0 ; i1-- )
{
for (int a1 = 0; a1<y1; a1++)
{
printf(" ");
}
y1++;
for (int j1 = 1; j1<i1; j1++)
{
printf("* ");
}
printf("\n");
}
return 0;
}
一个正三角一个倒三角
作者:
sgr2038
时间:
2015-4-10 23:11
都是大神啊,向你们看齐:lol
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2