例1、输出以下形状:
分析:用两层循环控制输出。外层循环变量i控制行数,i:1-8;
内层循环输出每行的8个星号和空格,j:1-8,每次输出"* 输完后换行。
在内层输出星号前加空格让星号居中。也用循环实现。空格数计算方法:
n个星号,中间有n-1个空格,所以星号行长度为n+n-1=2n-1.
默认输入窗口总长度为80,星号居中,左右留空:(80-(2n-1))/2=40-n.
#include <>
main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=40-n;j++)
printf("
for(j=1;j<=n;j++)
printf("*
printf("");
例2、输出以下形状:
分析:外层循环i:1-8,控制行数。
内层循环第i行i个星号,所以j:1-i.修改例1,内层输出星号的循环j的终值即可。
#include <>
main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=40-n;j++)
printf("
for(j=1;j<=i;j++)
printf("*
printf("");
例3、输出以下形状:
#include <>
main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=40-n;j++)
printf("
for(j=1;j<=i;j++)
printf("*
printf("");
for(i=1;i<=n-1;i++)再接一个n-1行的小三角。
for(j=1;j<=40-n;j++)
printf("
for(j=1;j<=n-i;j++)
printf("*
printf("");
例4、输出以下形状:
分析:外层循环控制行数i:1-n;
内层第i行星号数:2i-1个。j:1到2*i-1。
星号长度:2i-1+2i-2=4i-3个,两边留空:(80-(4i-3))/2=41-2i.
#include <>
main()
const int n=8;
int i,j;
for(i=1;i<=n;i++)
for(j=1;j<=41-2*i;j++)
printf("
for(j=1;j<=2*i-1;j++)
printf("*
printf("");
例5、输出以下形状:
#include <>
main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=39-2*n+2*i;j++)
printf("
for(j=1;j<=2*(n-i)+1;j++)
printf("*
printf("");
例6、输出以下形状:
#include <>
main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=41-2*i;j++)
printf("
for(j=1;j<=2*i-1;j++)
printf("*
printf("");
for(i=1;i<=n-1;i++)
for(j=1;j<=41-2*(n-i);j++)
printf("
for(j=1;j<=2*(n-i)-1;j++)
printf("*
printf("");
例7、输出以下形状:
#include <>
void main()
const int n=9;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=41-2*i;j++)
printf("
for(j=1;j<=2*i-1;j++)
printf("%2d",i);
printf("");
for(i=1;i<=n-1;i++)
for(j=1;j<=41-2*n+2*i;j++)
printf("
for(j=1;j<=2*(n-i)-1;j++)
printf("%2d",n-i);
printf("");
例8、输出以下形状:
#include <>
void main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=41-2*i;j++)
printf("
for(j=1;j<=i;j++)
printf("%2d",j);
for(j=i-1;j>=1;j--)
printf("%2d",j);
printf("");
2图直接修改上面的程序,将数字输出改为字符%c,数字+64转为大写字母。
#include <>
void main()
const int n=8;
int i,j;
printf("");
for(i=1;i<=n;i++)
for(j=1;j<=41-2*i;j++)
printf("
for(j=1;j<=i;j++)
printf("%2c",j+64);
for(j=i-1;j>=1;j--)
printf("%2c",j+64);
printf("");
printf输出格式
格式 a abc abcdefgh s a abc abcdefgh 5s a abc abcdefgh 5s a abc abcde 5.5s a abc abcde 5s a abc abcdefgh printf 格式化字符串。格式 1 1212345123456789 d1 12123451...
C语言经典例题
程序81 题目 809 800 9 1 其中?代表的两位数,8 的结果为两位数,9 的结果为3位数。求?代表的两位数,及809 后的结果。1.程序分析 2.程序源 include include output long b,long i printf ld ld 809 ld ld b,i,i,b ...