最近课堂上总是碰到用*关于打印三角图形之类的, 今天又学了数组, 用数组赋值再打印金字塔,
对于这方面的问题我写过好多次, 写写改改, 想到了新的方法又会写一遍, 今天把最近这几天写的
关于打印三角图形和沙漏的问题整理了下, 大家有兴趣的可以看看.
以下:
//倒三角的for循环. // Created by rain on 15/11/2. // Copyright © 2015年 rain. All rights reserved. /* 打印倒三角图形 ******* ***** *** * */ #include <stdio.h> int main(){ for (int j=0; j<4; j++) { for (int k=7; k>j; k--) { if (7-k<j) { printf(" "); } else{ printf("*"); } }printf("\n"); } return 0; }
//打印沙漏图形/*打印沙漏图形 ******* ***** *** *
* *** ***** ******* */ #include<stdio.h> #include<stdlib.h> //注:abs是绝对值操作符, 要先调用系统头文件stdlib.h(应该是叫操作符把...*^__^*说错轻喷) int main() { for (int i=0; i<9; i++) { for (int j=0; j<abs(i-4)+3; j++) { if (j<abs(4-abs(4-i))) { printf(" "); } else{ printf("*");} }printf("\n"); } return 0; }
下午看了下姚姚老师的课程目录,看到有用二位数组打印*三角图形的内容,于是想了下,可以写写这个当成作业,写完了才看到原来老师讲的不是这个...上课讲还要自己赋值,真麻烦... 这个可以define行数, 赋值行数M, 就打印多少行.
//用数组打印三角图形 //打印三角图形 /* * \ *** | ***** > 一共有M行 ******* | ********* / */ #include <stdio.h> #define M 16
char arr[M][M*2-1]; void xingxing(int len);
int main(){ xingxing(M); return 0; }
void xingxing(int len){ for(int m=0;m<len;m++){ for(int n=0;n<m+len;n++){ if(n<len-m-1){ arr[m][n]=' '; } else{ arr[m][n]='*'; } } } for(int i=0;i<M;i++){ for(int j=0;j<M*2-1;j++){ printf("%c",arr[j]); }printf("\n"); } }
还是打印沙漏的问题, 因为之前自己弄得不是很明白, 今天自己又鼓捣了下, 请教了同学, 终于把这东西弄懂了. (这里谢谢我们第五组的技术助长.)
// 打印沙漏 #include<stdio.h> #include<stdlib.h> int main() { printf("沙漏-9行7列\n"); /* ******* ***** *** * * *** ***** ******* */ for (int a=0; a<9; a++) { for (int b=0; b<7; b++){ if (abs(a-4)<=abs(b-3)){ printf(" "); } else{ printf("*"); } } printf("\n"); } return 0; }
附上思考过程, 数学问题, 大学没学高数都忘光了, 想了半天 %>_<% 同为入学者不懂得同学可以看看..^_^
今天也写整理了一下打印三角形的问题, #define 行数,可以任意打印多少行.//打印M行*三角形 //打印M行
#include<stdio.h>#include<stdlib.h>#define M 13
int len=M;int main(){ for (int a=0; a<len; a++) { for (int b=0; b<len*2+1; b++) { if (a<abs(b-len+1)) { printf(" "); } else { printf("*"); } }printf("\n"); } return 0;}
正三角大家应该都编写过, 我自己貌似没写...好像没有了...应该还可以用数组打印沙漏, 任意define多少行, 但是觉得麻烦了点..有兴趣的同学可以自己写看看. 另外给大家提点建议, 有问题可以多请教我们各组的技术组长, 他们都是内功深厚平时找不到对手的, 所以我们应该多骚扰他们, 他们也是很乐意帮我们解决的. 哈哈 以上.
个人签名:年轻就是永不放弃!
|