婵犵數濮烽弫鎼佸磻濞戔懞鍥敇閵忕姷顦悗鍏夊亾闁告洦鍋夐崺鐐烘⒑鐠恒劌娅愰柟鍑ゆ嫹闂傚倸鍊峰ù鍥儍椤愶箑骞㈤柍杞扮劍椤斿嫮绱撻崒姘偓鍝ョ矙閸曨垰绠柨鐕傛嫹闂傚倸鍊风欢姘缚閼姐倖瀚婚柣鏃傚帶缁€澶愬箹濞n剙濡奸柛姘秺楠炴牕菐椤掆偓婵¤偐绱掗悪鈧崳锝夊蓟閿熺姴鐐婇柍杞扮贰閻庢娊姊虹捄銊ユ珢闁瑰嚖鎷�华体会体育2串1 ,大学生新闻发布平台
华体会体育2串1
大学生新闻大学生活校园文学hthcom华体会
hth电竞官方下载 hth官方下载 hthvp华体会 hth358华体会 社会实践心得
全国排名校友会版hthcom华体会赌博 分类排名本科排名一本排名hth359华体会 hth365华体会 学校地址
求职简历职场法则面试技巧职场故事求职招聘大学生就业
英语学习计算机学习电气工程机械工程经济管理建筑设计财务会计
申请书证明书检讨书自荐信演讲稿心得体会调查报告读后感求职信推荐信其它范文

C语言输出菱形(详解版)

菱形,就是如下所示的图形,总行数与总列数相等:




写一个程序,根据用户输入的总行数,打印出菱形。

这个题目主要是找出规律,考察读者的逻辑思维。

你可以从第一行开始,遍历所有的列,也可以从第一列开始,遍历所有的行。

下面的程序从第一行开始,遍历所有的列。

设菱形的总行数为line,总列数为column,当前行为i,当前列为j。上半部分与下半部分的规律不一样,应该分开讨论。

我们着眼于星号(*),思考什么条件下输出星号,总结出如下的规律。

1) 对于上半部分(包括中间一行),当前行与当前列满足如下关系输出星号:
j>=(column+1)/2-(i-1) (column+1)/2-(i-1)为第i行最左边的星号
j<=(column+1)/2+(i-1) (column+1)/2+(i-1)为第i行最右边的星号
2) 对于下半部分,当前行与当前列满足如下关系输出星号:

j>=(column+1)/2-(line-i) (column+1)/2-(line-i)为第i行最左边的星号
j<=(column+1)/2+(line-i) (column+1)/2+(line-i)为第i行最右边的星号
不满足上述条件,则输出空格。

于是写出如下的代码:

#include <stdio.h>
#include <stdlib.h>
 
int main(){
    int line;  // 菱形总行数
    int column;  // 菱形总列数
    int i;  // 当前行
    int j;  // 当前列
 
    printf("请输入菱形的行数(奇数):");
    scanf("%d", &line);
    if(line%2==0){  // 判断是否是奇数
        printf("必须输入奇数!\n");
        exit(1);
    }
    column = line;  // 总行数和总列数相同
 
    for(i=1; i<=line; i++){  // 遍历所有行
        if(i<(line+1)/2+1){  // 上半部分(包括中间一行)
            for(j=1; j<=column; j++){  // 遍历上半部分的所有列
                if( (column+1)/2-(i-1)<=j && j<=(column+1)/2+(i-1) ){
                    printf("*");
                }else{
                    printf(" ");
                }
            }
        }else{  // 下半部分
            for(j=1; j<=column; j++){  // 遍历下半部分的所有列
                if( (column+1)/2-(line-i)<=j && j<=(column+1)/2+(line-i) ){
                    printf("*");
                }else{
                    printf(" ");
                }
            }
        }
        printf("\n");
    }
 
    return 0;
运行结果:

请输入菱形的行数(奇数):11
     *
    ***
   *****
  *******
 *********
***********
 *********
  *******
   *****
    ***
     *
    作者:华体会体育2串1     来源:华体会体育2串1
    发布时间:2025-03-11    阅读:10
    扫一扫 分享悦读
  • C语言输出菱形(详解版)
  • C语言汉诺塔问题,用C语言实现汉诺塔
  • 汉诺塔问题是指:一块板上有三根针 A、B、C。A 针上套有 64 个大小不等的圆盘,按照大的在下、小的在上的顺序排列,要把这 64 个圆盘从
  • 03-10 关注:4
  • C语言日期函数,日期处理函数
  • 定义一个表示日期的结构体类型,再分别定义函数完成下列功能:计算某一天是对应年的第几天,这一年一共多少天;计算两个日期之间相隔的
  • 03-10 关注:4
Baidu
map