c语言两种方法菱形,C语言编程 两种方法打印一个菱形(渐入显示)

然后找到数组中间的元素,操作空格字符从中间开始向两边与符号数组的元素互换,

每互换一次进行一次输出,打印上半个菱形和下半个菱形需要两个for语句的支持。

源代码如下:

#include

#include

#include//为了使用延时语句Sleep而调用

int main()

{

char suu1[] = "*****************************************";//符号语句

char suu2[] = " ";//空格语句

int right, left=0, mid;

right = strlen(suu2)-1;

mid = left + (right - left) / 2;

for (left = mid , right = mid ; left >= 0&&right<=strlen(suu2)-1 ; left--, right++)//上半部分打印

{

suu2[left] = suu1[left];

suu2[right] = suu1[right];

printf("%s\n", suu2);

Sleep(600);//延时操作

}

for (left = 0, right = strlen(suu1)-1; left <=mid && right >=mid; left++, right--)//下半部分打印

{

suu2[left] = ‘ ‘;

suu2[right] = ‘ ‘;

printf("%s\n", suu2);

Sleep(600);

}

system("pause");

return 0;

}

这种方法较为浅显易懂,但缺点是菱形的大小是通过所定义的字符数组的长度来定义的,不是特别灵活。

<2>

第二种方法算法上相比第一种较为复杂,但是可操控性比较高,主要是通关观察来得到所打印符号的行,列和符号个数之间的数学关系来打印。

源代码如下:

#include

#include

int main()

{

int line = 0,m,k;

scanf("%d", &line);//通过输入来确定菱形的大小

int i = 0;

for (i = 0; i < line; i++)//上半部分打印

{

for (m = 0; m

printf(" ");

for (m= 0; m <2 * i+ 1; m ++)

{

printf("*");

}

printf("\n");

}

for (i = 0; i < line-1; i++)//下半部分打印

{

for (m = 0; m<=i; m++)

printf(" ");

for (m = 0; m <2 * (line-i-1)-1; m++)//观察得到的关系式

{

printf("*");

}

printf("\n");

}

system("pause");

return 0;

}

运行结果实例:

18af57940d98f75a8426d8d873280ce1.png

原文:https://blog.51cto.com/14232799/2368586

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值