C语言输出格式控制

发布 2019-05-26 11:26:17 阅读 4189

例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 ...