【C语言】--练手项目②:“打印图形”系列题目

【C语言】–练手项目②:“打印图形”系列题目

——————————————————————C语言练手日记2

练习心得:1.“打印”题目关键在于 相互之间的选择结构和循环结构
2.输入输出的格式问题;
3.注意基本的语句格式。

#注意:vs2019版本中为scanf_s,其他版本可能为scanf。

①输出指定的由“*”组成的倒三角图案:(易)

/*
* * * *
 * * *
  * *
   *
*/
#include "stdio.h"
int main()
{
    printf("* * * *\n");
    printf(" * * *\n");
    printf("  * *\n");
    printf("   *");
    return 0;
}

②打印一个高度为n的、由“*”组成的正菱形图案:(繁)

①输出指定的由“*”组成的倒三角图案。

/*打印一个高度为n的、由“*”组成的正菱形图案。
如图所示(7行):
      *
    * * *
  * * * * *
* * * * * * *
  * * * * *
    * * *
      * 
 */
#include <stdio.h>
int main(void)
{
    int n = 0;
    scanf("%d", &n);
    int row = (n / 2) + 1;
    for (int i = 1;i <= row;i++) {
        for (int j = row - i;j > 0;j--) {
            printf("  ");
        }
        for (int j = 0;j < (2 * i - 1);j++) {
            printf("* ");
        }
        printf("\n");
    }
    for (int i = 1;i < row;i++) {
        for (int j = 0;j < i;j++) {
            printf("  ");
        }
        for (int j = (row - i) * 2 - 1;j > 0;j--) {
            printf("* ");
        }
        printf("\n");
    }

    return 0;
}

③打印九九乘法表

#include "stdio.h"
int main()
{
	int i,j,N;
	printf("------可输出从1*1到N*N的部分口诀表。");
	printf("\n请输入N的值:");
	scanf_s("%d", &N);
	for (i = 1;i <= N;i++)
	{
		for (j = 1;j <= i;j++)
			printf("%d * %d =%d  ", i, j, i * j);
		printf("\n");
	}
	return 0;
}

在这里插入图片描述

④打印3的乘方表

/*输入一个非负整数n,生成一张3的乘方表,输出3​^0​​~3​^n​​的值。可调用幂函数计算3的乘方。*/
#include<stdio.h>
#include<math.h>
int main(void)
{
	int i, n;
	double power;
	scanf("%d", &n);
	for(i=0; i<=n; i++){
		power=pow(3,i);
		printf("pow(3,%d) = %.0f\n", i, power);
	}
	return 0;
}

⑤打印沙漏:

#include<stdio.h>
int main()
{
    int x, sum = -1, n, i, yu, b, k; char a;
    scanf_s("%d %c", &n, &a);
    for (i = 1;;i++)
    {
        sum = sum + 2 * (2 * i - 1);
        if (n - sum < 0) break;
        b = sum;
    }
    yu = n - b;
    x = i - 1;

    for (i = x;i > 0;i--)
    {
        for (k = x - i;k > 0;k--)
            printf(" ");
        for (k = 1;k <= 2 * i - 1;k++)
            printf("%c", a);
        printf("\n");
    }
    for (i = 2;i <= x;i++)
    {
        for (k = x - i;k > 0;k--)
            printf(" ");
        for (k = 1;k <= 2 * i - 1;k++)
            printf("%c", a);
        printf("\n");
    }
    printf("%d", yu);
    return 0;
}

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值