C语言输出三角形菱形

合集下载

c语言星号打印矩形、三角形、菱形等图案及参考答案

c语言星号打印矩形、三角形、菱形等图案及参考答案

用星号打印各种图形及参考答案【4.4】输入n值,输出如图所示矩形。

【4.5】输入n值,输出如图所示平行四边形。

【4.6】输入n值,输出如图所示高为n的等腰三角形。

【4.7】输入n值,输出如图所示高为n的等腰三角形。

【4.8】输入n值,输出如图所示高和上底均为n的等腰梯形。

【4.9】输入n值,输出如图所示高和上底均为n的等腰空心梯形。

【4.10】输入n值,输出如图所示边长为n的空心正六边型。

【4.11】输入n值,输出如图所示图形。

【4.12】输入n值,输出如图所示图形。

【4.13】输入n值,输出如图所示图形。

【4.14】输入n值,输出如图所示图形。

【4.15】输入n值,输出如图所示图形。

【4.16】输入n值,输出如图所示图形。

(例为n=6时)【4.17】编写程序,输出如图所示sin(x) 函数0到2π的图形。

【4.18】编写程序,在屏幕上输出一个由*号围成的空心圆。

【4.19】编写程序,在屏幕上绘制如图余弦曲线和直线。

若屏幕的横向为x轴,纵向为y轴,在屏幕上显示0~360度的cos(x)曲线与直线x=f(y)=45*(y-1)+31的迭加图形。

其中cos图形用"*"表示,f(y)用"+"表示,在两个图形的交点处则用f(y)图形的符号。

【4.4】分析:打印此图形用两重循环实现。

图形要重复n行,故采用循环结构实现循环n次,循环体内部打印一行'*'号,把上述思路表示为:for(i=1;i<=n;i++)打印一行'*'号;每行有n个'*'号,再采用循环结构实现n次循环,循环内部用格式输出语句打印一个'*'号,即:for(j=1;j<=n;j++)printf("*");按照上述思路,实现打印矩形。

参考答案:main(){ int i,j,n;printf("\nPlease Enter n:");scanf("%d",&n);for(i=1;i<=n;i++){ for(j=1;j<=n;j++)printf("*");printf("\n");}}【4.5】分析:此图形和上题的区别在于在每一行先要打印空格,然后再打印n个'*'号,在上题第一层循环体内打印'*'号的循环前面增加一个循环打印空格。

C语言输出任意边长的菱形

C语言输出任意边长的菱形

C语⾔输出任意边长的菱形⽬录1.简单理解星号输出原理,将输出星号代码分为上⽅和下⽅两部分2.上⽅输出星号代码3.下⽅输出星号代码全部代码如下经过⼀段时间的学习后,想必⼤家都已经开始摩拳擦掌,迫不及待地想⽤C语⾔写⼀些程序了。

那么今天,我们就来学习C语⾔中常见的例⼦——输出任意边长的菱形适⽤范围:学习并掌握了C语⾔循环以及之前的内容上⾯图⽚中⽤黄⾊a标⽰出来的便是菱形的边长,图⽚中为3,当然,也可以理解为(星号的⾏数+1)/2那么,废话不多说,上教程1.简单理解星号输出原理,将输出星号代码分为上⽅和下⽅两部分⾸先,我们可以观察到如果边长为a的话,那么最长的⼀⾏的长度就为2*a-1,同时,每列星号都是对齐的,这说明我们如果想要输出星号,是有规律可循的,没星号的地⽅我们可以⽤空格来代替,这样⼀想,发现,我们好像可以使⽤x轴区间来控制空格和星号的输出例如,第三⾏,如果我们设第⼀个星号的x坐标为1的话,并在此基础上输出5个星号,那我们只需要写⼀串代码去控制在x属于[1,5]的区间上输出星号就⾏了同样,对于图⽚中第⼀⾏来说,我们只需要写⼀串代码来控制在x属于(2,4)的区间上输出⼀个星号就⾏了,如下for(int j=1;j<2*3-1;j++) //3为图⽚中菱形的边长{if(j>2&&j<4)printf("*");elseprintf(" ");}现在,由于⾏数不同,每⾏输出的星号数也就不同,那么,我们就可以找出输出星号数和⾏数的的关系但是,我们⼜可以看出,最长的⼀⾏星号上⾯的星号输出⽅式为由少到多,⽽最长⼀⾏下⾯的星号输出⽅式为由多到少,那么,对于上⾯和下⾯,我们要找的星号数与⾏数的关系也是不同的2.上⽅输出星号代码那么,接下来,我们先讨论最长⼀⾏星号的上⽅(包括最长⼀⾏星号),输出星号数与⾏数的关系⾸先,我们要遍历最长⼀⾏上⽅的所有⾏(包括最长⼀⾏),这时,就要⽤到for循环,这⾥的a表⽰最长的⼀⾏的⾏数,同时也是菱形的边长for(int i=1;i<=a;i++)接下来,我们要找到⾏数与输出星号数的关系经过观察,我们发现,如果a为边长,i表⽰⾏数,那么则在(a-i,2*a-(a-i))区间上要输出星号看到这⾥的友友们可以停下来思考⼀下,思考通了在接着看好的,那么接下来,我们要遍历列,单单遍历⾏是不够的,不能控制星号以及空格的输出,所以,我们就需要遍历列如下,我们⽤到了输出星号的区间,如果列数在区间(a-i,2*a-(a-i))内,就输出星号,不在区间内,就输出空格,这样,就可以控制输出星号以及⾏数的关系了。

数字三角形c语言

数字三角形c语言

数字三角形c语言
数字三角形是指由数字组成的一种特殊的图形,它遵循一定的规律。

我们可以使用C语言编写程序来打印数字三角形。

下面是一个使用C语言编写的打印数字三角形的示例代码:
```c
#include <stdio.h>
int main() {
int rows, i, j, number = 1;
printf("请输入行数:");
scanf("%d", &rows);
for(i = 1; i <= rows; i++) {
for(j = 1; j <= i; j++) {
printf("%d ", number);
number++;
}
printf("\n");
}
return 0;
}
```
以上代码首先通过`scanf`函数获取用户输入的行数,然后通过
两个嵌套的`for`循环来打印数字三角形。

外层循环控制行数,从1递增到用户输入的行数。

内层循环控制每行中数字的数量,从1递增到当前行数。

在每次循环迭代时,使用`printf`函数打印数字,并将`number`变量递增。

运行以上代码,用户输入行数后,就可以在控制台中看到打印出的数字三角形。

这就是一个使用C语言编写的简单数字三角形打印程序。

希望对你有所帮助!。

C语言输出菱形的方法

C语言输出菱形的方法

C语言输出菱形的方法题目:输出行列都相等的菱形,如5行5列:行列 123451 *2 ***3 *****4 ***5 *分析:当行数等于总行数的一半时,*是递增的,递增为2。

当行数大于总行数的一半时,*是递减的,递增为2。

设有一个行列为n的菱形,我们用变量i作为行数,以0开始,ik作为n菱第i行要输出的*个数。

则i<=n的中值(用m表示,m=(n-1) i="">m时,k递减。

因为k相对于m行对称,所以:当i>m时,i每增加i-m时的k值就和第m-i行的k值相等,即第i-m行和第m-(i-m)相对称。

所以得出结果:当i<=m时,k=2i+1当i>m时,k=2(m-(i-m))+1,(m=(n-1)/2)。

即k=2n-2i-1由于我们只需要输出*左边的空格即可,所以每行*左边的空格的个数为:(n-每行的.k)/2。

每行循环输出空格,再循环输出每行的*,再输出回车,结束一行。

这样我们就可以开始编程了。

#includeint main(){int i,j,k,n;//定义四个变量:i是行,j每行*号前的空格数,k每行的*号数printf("please input odd n:");scanf("%d",&n); //输入奇数nfor (i=0;i{if(n>=2*i+1) //判断k值k=2*i+1;elsek=2*n-2*i-1;for(j=(n-k)/2;j>0;j--) //循环输出空格printf(" ");for(;k>0;k--) //循环输出*号printf("*");printf("n"); //输出回车结束一行}本来呢题目就到止结束了,但上面的程序还不够完美比如说,别人输入n值为偶数怎么办?输入非数值呢?我们加一点东西进去:#includeint main(){int i,j,k,n=0; //这里给n赋初值,即使输入非数值,n也可有确切的值。

C语言中打印各种三角形

C语言中打印各种三角形

public class Triangle {1.2./**3.* @param args4.*/5.6.public static void main(String[] args) {7.a(); //打印正等腰三角8.b(); //打印倒等腰三角9.c(); //打印直边靠左正直角三角10. d(); //打印直边靠右正直角三角11. e(); //打印直边靠左倒直角三角12. f(); //打印直边靠右倒直角三角13. g(); //打印底边靠左钝角角三角14. h(); //打印底边靠右钝角角三角15. }16. /**17.* 作用:打印正等腰三角18.*/19. public static void a(){20. System.out.println("打印正等腰三角");21. int i ,j;22. for(i=1;i<=5;i++){23. for(j=5;j>i;j--){24. System.out.print(" ");25. }26. for(j=0;j<i*2-1;j++){27. System.out.print("*");28. }29. System.out.println();30. }31. }32.33. /**34.* 打印倒等腰三角35.*/36. public static void b(){37. System.out.println("打印倒等腰三角");38. int i ,j ;39. for(i=1;i<=5;i++){40. for(j=1;j<i;j++){41. System.out.print(" ");42. }43. for(j=10;j>i*2-1;j--){44. System.out.print("*");45. }46. System.out.println();47. }48. }49. /**50.* 打印直边靠左正直角三角51.*/52. public static void c(){53. System.out.println("打印直边靠左正直角三角");54. int i ,j ;55. for(i=1;i<=5;i++){56. for(j=0;j<i;j++){57. System.out.print("*");58. }59. System.out.println();60. }61. }62.63. /**64.* 打印直边靠右正直角三角65.*/66. public static void d(){67. System.out.println("打印直边靠右正直角三角");68. int i ,j;69. for(i=1;i<=5;i++){70. for(j=5;j>i;j--){71. System.out.print(" ");72. }73. for(j=0;j<i;j++){74. System.out.print("*");75. }76. System.out.println();77. }78. }79. /**80.* 打印直边靠左倒直角三角81.*/82. public static void e(){83. System.out.println("打印直边靠左倒直角三角");84. int i ,j;85. for(i=1;i<=5;i++){86. for(j=5;j>=i;j--){87. System.out.print("*");88. }89. System.out.println();90. }91. }92. /**93.* 打印直边靠右倒直角三角94.*/95. public static void f(){96. System.out.println("打印直边靠右倒直角三角");97. int i ,j;98. for(i=1;i<=5;i++){99. for(j=1;j<i;j++){100.System.out.print(" ");101.}102.for(j=5;j>=i;j--){103.System.out.print("*");104.}105.System.out.println();106.}107.}108./**109.* 打印底边靠左钝角角三角110.*/111.public static void g(){112.System.out.println("打印底边靠左钝角角三角");113.int i ,j ;114.for(i=1;i<=5;i++){115.for(j=0;j<i;j++){116.System.out.print("*");117.}118.System.out.println();119.}120.for(i=1;i<5;i++){121.for(j=5;j>i;j--){122.System.out.print("*");123.}124.System.out.println();125.}126.}127./**128.* 打印底边靠右钝角角三角129.*/130.public static void h(){131.System.out.print("打印底边靠右钝角角三角");132.int i,j;133.for(i=0;i<=5;i++){134.for(j=5;j>i;j--){135.System.out.print(" ");136.}137.for(j=0;j<i;j++){138.System.out.print("*");139.}140.System.out.println();141.}142.for(i=1;i<5;i++){143.for(j=0;j<i;j++){144.System.out.print(" ");145.}146.for(j=5;j>i;j--){147.System.out.print("*");148.}149.System.out.println();150.}151.}152.}逆序的各种算法:1.public class Reverse {2.public static void main(String[] args) {3.//定义的字符4.String s = "华中爱我";5.6.7.//通过String的subString方法8.int len = s.length();9.String sub_reverse = "";10. for (int i = len; i > 0; i--)11. sub_reverse += s.substring(i - 1,i); //返回子字符串,开始于i-1结束于i12. System.out.println("通过substring方法逆序: "+sub_reverse);13.14.15.//通过Sring的StringBuffer方法逆序16. String buffer_reverse;17. buffer_reverse=(new StringBuffer(s).reverse()).toString();18. System.out.println("通过StringBuffer方法逆序: "+buffer_reverse);19.20.21.//通过数组实现字符串逆序22. char[] c = s.toCharArray();23. char[] temp = new char[c.length];24. for (int i = 0, j = c.length - 1; i< c.length; i++, j--) {25. temp[j] = c[i];26. }27. System.out.println("通过数组来逆序: "+buffer_reverse);28.29.30.31.32. }33.}。

c语言实践打印字母三角形

c语言实践打印字母三角形

c语⾔实践打印字母三⾓形效果如下:我是怎么想的:总共需要打印6⾏字母,那么就需要⼀个循环来控制打印第⼏⾏,⼤概代码如下:for(int i=0;i<6;i++){}每⾏都会打印字母,⽽且循环越往后,需要打印的字母越多,那么每⾏打印字母也需要⼀个循环,⽐如打印F到A这需要⼀个循环,其它也是同样的道理。

每⾏打印完都需要输出⼀个换⾏,所以代码变成下⾯这样for(int i=0;i<6;i++){ for(char j='F';XXXXX;j--) { } printf("%c",j);}因为每⾏都是从F开始打印的,所以j的初始值肯定是F,有因为每次是从F往A这个⽅向打印的,那么肯定有j--这个操作,上⾯的代码不难理解。

真正难的是j=‘F’后⾯这个进⼊循环的条件,这个怎么想。

⽤列举法推出来的。

当i=0的时候,需要打印第⼀⾏字母,此时j='F',那么我们给j⼀个什么样的关系表达式,才能够让j只能取到'F'这⼀个值呢?是不是j>'F'-1char j='F',j>'F'-1;j-- j的定义域只能取到‘F’当i=1的时候,需要打印第⼆⾏字母,也就是需要⾥⾯的循环执⾏两次,那么给j⼀个什么样的表达式,才能够让j的值渠道'F'和‘E’呢?是不是j>'F'-2;我们不能直接把'F'-1和'F'-2这两个表达式直接写进去,不然输出的是固定值,我们想要这两个值和i发⽣⼀定的关系当i=0时候,我们希望j>'F'-1='F'-(0+1)当i=1时候,我们希望j>'F'-2='F'-(1+1)当i=3时候,我们希望j>'F'-4='F'-(3+1)所以通项公式就是j>'F'-(i+1)最后代码如下:int main(void){for (int i = 0; i < 6; i++){for (char j = 'F'; j > 'F'-(i+1); j--){printf("%c",j);}printf("\n");}return1;}update:2018.10.2这次思考过程和上次完全不⼀样。

菱形c语言程序

菱形c语言程序

菱形c语言程序菱形是一种图形,它由两个交错的倒三角形组成,看起来像一个菱形。

在C语言中,我们可以使用循环和条件语句来打印出一个菱形图案。

本文将介绍一个绘制菱形图案的C语言程序,并解释每一步的细节。

示例代码如下:```c#include <stdio.h>int main() {int rows, i, j, space;printf("请输入菱形的行数:");scanf("%d", &rows);//上半部分for (i = 1; i <= rows; i++) {//打印空格for (space = 1; space <= rows - i; space++) { printf(" ");}//打印星号for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}//下半部分for (i = rows - 1; i >= 1; i--) {//打印空格for (space = 1; space <= rows - i; space++) {printf(" ");}//打印星号for (j = 1; j <= 2 * i - 1; j++) {printf("*");}printf("\n");}return 0;}```以上代码的逻辑如下:1.首先,我们使用`scanf`函数从用户处获取输入的行数,并将其存储在`rows`变量中。

这个变量表示菱形的总行数。

2.接下来,我们使用两个嵌套的循环来打印菱形的上半部分。

外部循环控制行的数量,内部循环负责打印每一行的空格和星号。

3.内部循环中的第一个循环打印空格。

空格的数量等于总行数减去当前行数。

(for循环)打印各种三角形(C语言)

(for循环)打印各种三角形(C语言)

50
for(int j=0;j<tmp-i;j++){
51
printf(" ");
52
}
53
for(int k=0;k<2*i-1;k++){
54
printf("*");
55
}
56
printf("\n");
57 }
58
59 // 打印倒大三角形
60 for(int i=1;i<=tmp-1;i++){
15 }
16
17 // 打印靠左倒三角形
18 for(int i=1;i<=tmp;i++){
19
for(int j=0;j<tmp-i;j++){
20
printf("* ");
21
}
22
printf("\n");
23 }
24
25 // 打印靠右的正三角形
26 for(int i=1;i<=tmp;i++){
在练习制作三子棋时遇到了需要用for进行灵活的输出正方形宫格就想起了打印号三角形然后索性再练习了一番
( for循环)打印各种三角形( C语言)
在练习制作三子棋时,遇到了需要用for进行灵活的输出正方形宫格,就想起了打印*号三角形,然后索性再练习了一番。
1 #include <stdio.h>
2
3 int main(){
38 for(int i=1;i<=tmp-1;i++){
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档