C 练习实例23
题目:打印出如下图案(菱形)。
* *** ***** ******* ***** *** *
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。
程序源代码:
实例
// Created by study.p2hp.com on 15/11/9.
// Copyright © 2015年 高手教程. All rights reserved.
//
#include <stdio.h>
int main()
{
int i,j,k;
for(i=0;i<=3;i++) {
for(j=0;j<=2-i;j++) {
printf(" ");
}
for(k=0;k<=2*i;k++) {
printf("*");
}
printf("\n");
}
for(i=0;i<=2;i++) {
for(j=0;j<=i;j++) {
printf(" ");
}
for(k=0;k<=4-2*i;k++) {
printf("*");
}
printf("\n");
}
}
以上实例输出结果为:
* *** ***** ******* ***** *** *
C 语言经典100例



红途
471***417@qq.com
参考解法:
#include <stdio.h> int main() { int i, j, space_num = 3, start_num = 1; for ( i = 1; i <= 7; i++ ) { for ( j = space_num; j > 0; j-- ) printf( " " ); for ( j = start_num; j > 0; j-- ) printf( "*" ); if ( i > 7 / 2 ) { space_num++; start_num -= 2; } else { space_num--; start_num += 2; } printf( "\n" ); } return(0); }红途
471***417@qq.com
fairyice
202***9997@qq.com
参考方法:
#include <stdio.h> int main() { int i,j,k,stars,spaces; for(i=1;i<8;i++) { if(i<5) { stars=i*2-1; spaces=4-i; }else{ stars=7-(i-4)*2; spaces=i-4; } for(k=1;k<=spaces;k++) { printf(" "); } for(k=1;k<=stars;k++) { printf("*"); } printf("\n"); } return 0; }fairyice
202***9997@qq.com
Xipron
153***179@qq.com
参考方法:
#include <stdio.h> int main() { int i=1,j; for(j=5;j>1;j--) { while(i<j) { printf(" "); i++; } int k=1; while(k<10-2*j) { printf("*"); k++; } while(i>0) { printf(" "); i--; } printf("\n"); } for(j=1;j<5;j++) { while(i<j) { printf(" "); i++; } int k=1; while(k<10-2*j) { printf("*"); k++; } while(i>0) { printf(" "); i--; } printf("\n"); } return 0; }Xipron
153***179@qq.com
Andy Wayne
and***ayne@foxmail.com
参考方法:
#include <stdio.h> #define MAX 10 int main() { int i, j; int ctl = 0; if(MAX % 2 != 0) ctl = MAX + 1; else ctl = MAX; for(i = 1; i <= MAX; i++) { for(j = 1; j <= MAX; j++) { if(i <= ctl/2) { if(j > ctl/2 - i && j < ctl/2 + i) printf("*"); else printf(" "); } else { if(j > i - ctl/2 && j < ctl/2 + ctl - i) printf("*"); else printf(" "); } } printf("\n"); } return 0; }Andy Wayne
and***ayne@foxmail.com