C语言编程,用*组成菱形

如题所述

#include <stdio.h>

#include <stdlib.h>

int main(){

int line=7;  // 菱形总行数

int column;  // 菱形总列数

int i;  // 当前行

int j;  // 当前列

printf("请输入菱形的行数(奇数):7\n");

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;

}

扩展资料:

C语言书写规则:

1、一个说明或一个语句占一行。

2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

参考资料:

百度百科-c语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-06
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int n;
    int i,j;
    printf("请输入n:");
    scanf("%d",&n);
    for(i=0;i<=n;i++)//上半部分
    {
        for(j=1;j<=n-i;j++)//每行前边空格
        {
            putchar(' ');
        }
        for(j=1;j<=2*i+1;j++)//每行输出的#
        {
            putchar('#');
        }
        putchar('\n');
    }
    for(i=1;i<=n;i++)//下半部分
    {
        for(j=1;j<=i;j++)
        {
            putchar(' ');
        }
        for(j=2*(n-i)+1;j>0;j--)
        {
            putchar('#');
        }
        putchar('\n');
    }
    return 0;
}

第2个回答  推荐于2016-02-13
void main(){
    int i,j,k;
    for(i=0;i<=4;i++){
        for(j=0;j<=3-i;j++)
            printf(" ");
        for(k=0;k<=2*i;k++){
            if (k%2==0) {
                printf("*");
            }else{
                printf(" ");
            }
        }
        printf("\n");
    }
    for(i=0;i<=3;i++){
        for(j=0;j<=i;j++)
            printf(" ");
        for(k=0;k<=6-2*i;k++){
            if (k%2==0) {
                printf("*");
            }else{
                printf(" ");
            }
        }
        printf("\n");
    }
}

纯手打, 望采纳~~~

追问

谢谢

本回答被提问者采纳
第3个回答  推荐于2018-02-27
#include<stdio.h>
int main()
{
int i,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数
printf("please input odd n:");
scanf("%d",&n); //输入奇数n
for (i=0;i<n;i++) //循环所有行
{
if(n>=2*i+1) //判断k值
k=2*i+1;
else
k=2*n-2*i-1;
for(j=(n-k)/2;j>0;j--) //循环输出空格
printf(" ");
for(;k>0;k--) //循环输出*号
printf("*");
printf("n"); //输出回车结束一行
}
当年考试我直接输出···然后把图形画上去了,老师表扬了我的机智后表示以后下不为例追问

谢谢啦

本回答被网友采纳
相似回答