首页 > 代码库 > (c语法百题38)星罗密布
(c语法百题38)星罗密布
知识点:
for语句,if语句的灵活运用。
思考算法。
此题可以用二维数组做
优势是巧妙的衔接了*和$
内容:
输出图形
*****$
***$$$
*$$$$$
规律是...自己发现吧。
要求输入3,输出上面三行的图形
输入说明:
行数小于40
输出说明:
输入样例:
3
输出样例 :
*****$
***$$$
*$$$$$
法一:
#include <stdio.h>int main(){ int n,a,b,y=1,x,i; scanf("%d",&n); x=n; //预控制行数,方便以后递减 for (i=0;i<n;i++) //控制行数,一行换行 { for (a=0;a<2*x-1;a++) //for输出* { printf("*"); } for(b=0;b<y;b++) //第一行有一个$ { printf("$"); } y+=2; //递增一行,有y+2个$ x-=1; //函数递减,控制*的数,对应上面的“for输出*” printf("\n"); if(n==0)break; //当零行时,终止for循环,程序结束 } return 0;}
法二:
#include <stdio.h>int main(){ char a[100][1000]; int i,n,m,y; scanf("%d",&n); y=n; for (i=0;i<n;i++) { for (m=0;m<2*y-1;m++) { a[i][m]=‘*‘; printf("%c",a[i][m]); } for (;m<2*n;m++) //衔接上面m,直到2*n { a[i][m]=‘$‘; printf("%c",a[i][m]); } y-=1; if (y==0)break; printf("\n"); } printf("\n"); return 0;}
(c语法百题38)星罗密布
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。