600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 用C语言打印简单图案(爱心\圆形\三角形等)

用C语言打印简单图案(爱心\圆形\三角形等)

时间:2023-07-06 12:02:02

相关推荐

用C语言打印简单图案(爱心\圆形\三角形等)

文章目录

一、打印三角形二、打印圆形三、打印心形

一、打印三角形

题目:用∗号打印一个三角形\color{purple}{题目:用 * 号打印一个三角形}题目:用∗号打印一个三角形

基本五种不同形式的三角形

正三角形

#include<stdio.h>int main(){int i,j,k,n;printf("输入底边边长:"); scanf("%d",&n);for(i = 0;i <= n / 2;i++){for(j = n / 2 + 1 - i;j >= 1;j--){printf(" ");}for(k = n / 2 + 2 - i;k <= n / 2 + 2 + i;k++){printf("*");}printf("\n");}return 0;}

效果展示:

输入底边边长:9*************************

左下三角形

#include<stdio.h>int main(){int i,j,k;printf("输入底边边长:"); scanf("%d",&k);for(i=1;i<=k;i++){for(j=1;j<=i;j++){printf("*");}printf("\n");}return 0;}

效果展示:

输入底边边长:9*********************************************

左上三角形

#include<stdio.h>int main(){int i = 0, j = 0,n;printf("输入底边边长:"); scanf("%d",&n);for(i=n;i>=1;i--){for(j=1;j<=i;j++){printf("*");}printf("\n");}return 0;}

效果展示:

输入底边边长:9*********************************************

右上三角形

#include<stdio.h>int main(){int i = 0, j = 0,n;printf("输入底边边长:"); scanf("%d",&n);for(i=n;i>=1;i--){for(j=n;j>=1;j--){if(j>i){printf(" ");}else{printf("*");}}printf("\n");}return 0;}

效果展示:

输入底边边长:9*********************************************

右下三角形

#include<stdio.h>int main(){int i = 0, j = 0, k = 0,n;printf("输入底边边长:"); scanf("%d",&n);for(i=1;i<=n;i++){for(k=1;k<=n-i;k++){printf(" ");}for(j=i;j>=1;j--){printf("*");}printf("\n");}return 0;}

效果展示:

输入底边边长:9*********************************************

二、打印圆形

题目:用∗号打印一个空心圆\color{purple}{题目:用 * 号打印一个空心圆}题目:用∗号打印一个空心圆

思路分析

每行打印两个 * 号

首先要找出每行两个 *号的位置;然后打印;

找点

假设现在在i

第一个点为:

r−r2−(r−i)2r-\sqrt{r^2-(r-i)^2} r−r2−(r−i)2​第二个点为:

r−r2−(r−i)2r-\sqrt{r^2-(r-i)^2} r−r2−(r−i)2​

万事俱备,开始实操

#include<stdio.h>#include<math.h>int yuan(int r)//绘制圆{int i,j; // r 圆的半径 int y1_1=-1,y1_2=-1; // y1_1 记录第一个点上一行的位置 y1_2 记录第一个点上上一行的位置 int y2_1=-1,y2_2=-1; // y2_1 记录第二个点上一行的位置 y2_2 记录第二个点上上一行的位置 for(i=0;i<=2*r;i++){for(j=1;j<=2*2*r;j++) //因为每行要打印两个星号 {//打印每行第一个星号 if((int)sqrt(pow(r,2)-pow(r-i,2))==(r-j/2)&&(r-j/2)!=y1_1&&(r-j/2)!=y1_2){printf("*");y1_2=y1_1;y1_1=r-j/2;j++;}//打印每行第二个星号 else if((int)sqrt(pow(r,2)-pow(r-i,2))==(j/2-r)&&(j/2-r)!=y2_1&&(j/2-r)!=y2_2) {printf("*");y2_2=y2_1;y2_1=j/2-r;j++;}else{printf(" ");} }printf("\n");} }int main(){int r;printf("输入圆的半径:");scanf("%d",&r);yuan(r);return 0;}

效果展示:

三、打印心形

题目:用∗号打印一个心形\color{purple}{题目:用 * 号打印一个心形}题目:用∗号打印一个心形

思考

如何把运用数学公式更简易的让 C 把图案表达出来

心形公式:

pow((pow(x,2)+pow(y,2)-1),3)-pow(x,2) * pow(y,3)

上干货

#include<stdio.h>#include<windows.h>void aixing(){float x,y,a;for(y=1.3;y>-1.3;y-=0.1){for(x=-1.5;x<1.5;x+=0.04){a=x*x+y*y-1;//心形公式 (x*x+y*y-1)的三次方减去x*x*y*y*yputchar(a*a*a-x*x*y*y*y<=0.0?'*':' ');}Sleep(50);system("color 0c"); //改变 * 号的颜色putchar('\n');}}int main(){aixing();return 0;}

效果展示:

当然,可以直接用printf()输出

- - -< END >- - -

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。