C语言空心菱形流程图?

如题所述

#include <stdio.h> void Lozenge0(int n,char ch) { // 空心菱形    int i,j;    for(i = 0;i < n; ++i) { // 上半部分        for(j = 0;j <= n - i; ++j) printf(" "); // 输出每行前导空格        printf("%c",ch);        for(j = 0; j < 2 * i - 1; ++j) printf(" "); // 菱形内部空格        if(i) printf("%c",ch);        printf("\n");    }    for(i = n - 2;i >= 0; --i) { // 下半部分        for(j = 0;j <= n - i; ++j) printf(" "); // 输出每行前导空格        printf("%c",ch);        for(j = 0; j < 2 * i - 1; ++j) printf(" "); // 菱形内部空格        if(i) printf("%c",ch);        printf("\n");    }} int diffabs(int a,int b) { // 返回a,b差值的绝对值,即|a - b|    return (a > b) ? (a - b) : (b - a);} void Lozenge(unsigned int n,char c) {    unsigned int i,j,m;    for(i = 0;i < n;i++) {        m = diffabs(n/2,i);        for(j = 0;j <= m;j++) printf(" "); // 输出每行前导空格        for(j = 0;j < (n + 1)/2 - m;j++) printf("%c ",c);        printf("\n");    }} int main() {    int n = 10;    char ch = '*';    Lozenge0(n,ch);    Lozenge(n,ch);    return 0;}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-19
1、首先,输入预处理指令#include <stdio.h>与函数原型void print(int n)。其中,n表示行数。

2、然后,对输入的n进行提前判断,若小于0或为偶数,则结束打印。

3、接着对上半个菱形进行输出(包括最长的行)。使用两层循环进行输出,分别控制行数与行内的位置。

4、接着对下半个菱形进行输出(包括最长的行)。也使用两层循环进行输出,分别控制行数与行内的位置。

5、对n=5与n=7进行输出测试。

6、得到最后结果。
第2个回答  2019-12-19
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。

所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。所以,我们程序员的基础必须打扎实,才能够有更高的发展!
第3个回答  2019-12-19
先找规律
每行空格的个数
*的个数
然后循环打印
比如菱形
如果高度为n
那么 每行空格的个数依次为n-1 n-2 ... 0
*个数为1 3 5 7 ... 2*n+1
打印上半部之后 再同理打印下半部。
而空心菱形,则是多一步计算,中间的空格数。稍复杂一点点而已
第4个回答  2019-12-19
程序简易流程图如下:incl... 博文 来自: Rivival_S 的博客 打印几何图形打印平面几何图形可根据和线性公式
相似回答