使用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语言编程输出以下图形该怎么写呀?的主要内容,如果未能解决你的问题,请参考以下文章