当前位置: 首页 > news >正文

C语言:5.20程序练习题

 打印一个菱形图案。程序分为两部分:上半部分和下半部分。上半部分打印一个逐渐增大的星号图案,下半部分打印一个逐渐缩小的星号图案。

#include<stdio.h>
int main() {
	int row = 5;//定义行数
	int t = 2;
	for (int i = row; 0 < i; i--)
	{
		for (int k = i - 1; k > 0; k--) 
		{putchar(' ');}
		for (int g = t - 1; g > 0; g--) 
		{putchar('*');}
		t = t + 2;
		printf("\n");
	}
	t = t - 4;
	for (int i2 = 1; i2 <row; i2++) 
	{
		for (int k2 = i2; k2 > 0; k2--)
		{putchar(' ');}
		for (int g2 = t - 1; g2 > 0; g2--)
		{putchar('*');}
		t = t - 2;
		printf("\n");
	}
}

 

简化版:

  1. 单层循环:使用一个外层循环遍历所有行,一个内层循环遍历所有列。

  2. 数学逻辑:通过 abs(i) + abs(j) < row 判断是否打印星号,直接确定菱形边界。

  3. 减少变量:不再需要单独处理上下半部分,统一用数学逻辑处理。

#include <stdio.h>
#include<stdlib.h>
int main() {
    int row = 5; // 定义行数
    int i, j;
    // 打印整个菱形
    for (i = -row + 1; i < row; i++) {
        for (j = -row + 1; j < row; j++) {
            if (abs(i) + abs(j) < row) putchar('*'); // 打印星号
            else putchar(' '); // 打印空格
        }
        printf("\n");
    }
    return 0;
}

相关文章:

  • 第十篇《地形篇》
  • 树与二叉树的遍历
  • 数字图像处理与Python语言实现-Box模糊CUDA实现
  • 4-002:如何使用 MySQL 的 EXPLAIN 语句进行查询分析?
  • 国内IPD项目管理系统评测:7款工具对比与解析
  • 深度学习笔记35_Inception v1算法实战与解析
  • Kubernetes安全:集群保护的最佳实践
  • Nuxt3 使用 ElementUI Plus报错问题
  • Python控制语句 ——break和continue
  • 聚划算!三个模型对比预测!CNN-GRU、GRU、CNN三模型多变量时序光伏功率预测
  • 基于威胁的安全测试值得关注,RASP将大放异彩
  • 社交软件频繁更新,UI 设计在其中扮演什么角色?
  • ffmpeg + opencv 打静态库编译到可执行文件中
  • 布谷直播系统源码开发实战:从架构设计到性能优化
  • DeepSeek-R1思路训练多模态大模型-Vision-R1开源及实现方法思路
  • OpenHarmony5.0分布式系统源码实现分析—软总线
  • 详细解析 ListView_GetEditControl()
  • UE5与U3D引擎对比分析
  • c-线程创建,同步互斥,互斥锁;
  • NLP技术介绍
  • 深圳市哪些公司做网站好/淘宝推广工具
  • 市体育局网站 两学一做/推广优化
  • 深圳门户网站建设/百度问一问人工客服怎么联系
  • 建网站靠什么赚钱/萧山seo
  • 苏州党员两学一做网站/优书网
  • 做纸贸易的好网站/百度网游排行榜