使用c语言编程输出以下图形该怎么写呀?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用c语言编程输出以下图形该怎么写呀?相关的知识,希望对你有一定的参考价值。

* * * *
* *
* * * *
根据用户输入的整数长度和宽度,用星号”*”画出一个空心矩形。
例如:输入:3 4以下是我编的运行结果不正确!不知道怎么回事???
#include <stdio.h>
int main (void)

int i,j,m,n;
printf("请输入长度和宽度");
scanf("%d,%d",&m,&n);

for(i=1;i<=m;i++)

if(i==1||m)

for(j=1;j<=n;j++)
printf("*");
printf("\n");

else
for(j=1;j<=n;j++)

if(j==1||n)
printf("*");
else
printf(" ");



return 0;

复制粘贴即可用!!!!
#include<stdio.h>
int main()

int width,height; //宽度&高度
int i,j,k; //三个循环变量,设一个也可以,不过这样好理解
printf("请输入矩形的宽度:");
scanf("%d",&width);
printf("请输入矩形的高度:");
scanf("%d",&height);
//输出第一行
for(i=0;i<width;i++)

printf("*");

printf("\n");

//这个循环是输出左边的高度的 *
for(j=0;j<height-2;j++)

printf("*"); //输出左边的*
for(k=0;k<width-2;k++)//在输出空格时,要把左边高度的*和右边高度的星减掉,所有减2

printf(" "); //输出空格

printf("*"); //输出右边的*
printf("\n");

//输出最后一行
for(i=0;i<width;i++)

printf("*");

printf("\n");

return 0;
参考技术A #include<stdio.h>
main()
int a=0,b=0;
printf("Please input a and b:");
scanf("%d%d",&a,&b);
for(int i=1;i<=a;i++)

for(int j=1;j<=b;j++)
if((i==1)||(a==i)) printf("*");
else if((j==1)||(b==j)) printf("*");
else printf(" ");

printf("\n");

return 0;

a为宽,b为长。 楼主可以结贴了。
参考技术B # include<stdio.h>
main()

int i;
for(i=0;i<4;i++)

printf("*");

printf("\n");
for(i=1;i<6;i++)

if(i%4==1)

printf("*");

else
printf(" ");

printf("\n");
for(i=0;i<4;i++)

printf("*");

printf("\n");
getch();


补充: if(i==1||m) 和 if(j==1||n) 是干什么的呀?
我的程序:
#include <stdio.h>
int main (void)

int i,j,m,n;
scanf("%d %d",&m,&n);

for(i=1;i<=m;i++)

if(i%(m-1)==1)

for(j=1;j<=n;j++)
printf("*");
printf("\n");

else
for(j=1;j<=n;j++)

if(j%(n-1)==1)
printf("*");
else
printf(" ");

printf("\n");


getch();
追问

你的我运行了一片空白。我的那个意思是if(i==1||m),当为第一行或第m行时,不知道if后面可不可以这么用!

追答

我用Win-TC编译的

本回答被提问者采纳

急急急C语言中怎么用*等符号输出一种图形 如心形

可以通过循环语句和预先定义的图形模板来实现自定义的图形。


具体实现方法可以参考如下程序:

#include <stdio.h>
#define WIDTH 9    // 宽也即列数
#define HEIGHT 7   // 高也即行数
#define CHAR "*"  
int Modal[HEIGHT][WIDTH]=  // 定义形状的模板

0,1,1,1,0,1,1,1,0,
1,0,0,0,1,0,0,0,1,
1,0,0,0,0,0,0,0,1,
0,1,0,0,0,0,0,1,0,
0,0,1,0,0,0,1,0,0,
0,0,0,1,0,1,0,0,0,
0,0,0,0,1,0,0,0,0
;
void main()

    int i,j;
    for(i=0;i<HEIGHT;i++)  // 控制高度即行数
    
        for(j=0;j<WIDTH;j++)  // 控制宽度即列数
        
            if(Modal[i][j])  // 根据模板输出*号或空格
                printf(CHAR);
            else 
                printf(" ");
        
        printf("\\n");
    

注:更改模板的长宽、显示字符及模板内容,即可显示不同的图形。

参考技术A #include "stdafx.h" #include <stdio.h> #define WIDTH 9 #define HEIGHT 7 #define CHAR "*" int Modal[HEIGHT][WIDTH]= 0,1,1,1,0,1,1,1,0, 1,0,0,0,1,0,0,0,1, 1,0,0,0,0,0,0,0,1, 0,1,0,0,0,0,0,1,0, 0,0,1,0,0,0,1,0,0, 0,0,0,1,0,1,0,0,0, 0,0,0,0,1,0,0,0,0 ; main() int i,j; for(i=0;i<HEIGHT;i++) for(j=0;j<WIDTH;j++) if(Modal[i][j])printf(CHAR); else printf(" "); printf("\n"); 更改模板的长宽、显示字符及模板内容,即可显示不同的图形。 参考技术B #include<stdio.h> void main() printf(" *** *** \n"); printf(" * * * * \n"); printf(" * * *\n"); printf(" * *\n"); printf(" **"); 本回答被提问者采纳

以上是关于使用c语言编程输出以下图形该怎么写呀?的主要内容,如果未能解决你的问题,请参考以下文章

c语言 如何输出以下图形

C语言,编程实现:输出以下图形

c语言:编程输出以下图形

如何用C语言程序输出以下图形 // * *** ***** ******* ***** *** *

c语言 输出以下图形

怎样用C语言输出一个彩色的图案(不利用图片文件)?