游客:  注册 | 登录 | 搜索 | 帮助
3s地带



标题: 一个简单的C编程的问题!高手来解决一下!
卡巴ks0s
疾风
Rank: 4Rank: 4



UID 3945
精华 0
积分 194
帖子 54
现金 184
贡献值 0
阅读权限 40
注册 2007-8-24
一个简单的C编程的问题!高手来解决一下!
最好给出每个语句的注释哈,谢谢了。
题目:在屏幕上显示以下信息:

*
***
*****
*******
*****
***
*

顶部
fkfv1rfr
强风
Rank: 3



UID 5128
精华 0
积分 137
帖子 32
现金 127
贡献值 0
阅读权限 30
注册 2007-8-24
=================================
#include<stdio.h>
#include<stdlib.h>

void main()
{
int i,j,k;
for (i=0;i<4;i++) //输出上面4行*号
{
for (j=0;j<=2-i;j++) //输出*号前面的空格
printf(" ");
for (k=0;k<=2*i;k++) //输出一行的*号
printf("*");
printf("\n"); //每输出完一行*号后换行
}
for (i=0;i<3;i++) //输出下面3行*号
{
for (j=0;j<=i;j++) //输出*号前的空格
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*"); //输出一行的*号
printf("\n"); //每输出完一行*号后换行
}
system("pause"); //程序执行到此时暂停
//按任意键继续
}
//end of main
分析如下:可发现,前四行*号前的空格为3,2,1,0, 故j 与行数i 的关系式为j=2-i (因为i,j的初值均为0,当i=0;时,j=2,则从0数到2 共有3个数,即有3个空格),而*号的个数=2*i+1;故 k=2*i,(因为k的初值为0)下面三行也是一样的道理,不同的是*号前的空格随i 的增加而增加,有j=i(i,j的初值均为0),*号的个数随i的增加而减少,有k=4-2*i(i,k的初值均为0)

  
顶部
skpfi
强风
Rank: 3



UID 3912
精华 0
积分 115
帖子 19
现金 105
贡献值 0
阅读权限 30
注册 2007-8-24
#include <stdio.h>
int main ()
{
int i,j,n; //n为要显示的行数

printf ("enter a odd-number : ");
scanf ("%d", &n);

if (n % 2 != 0) {
for (i = 1; i <= (n+1)/2; i++) {
for (j = (n-1)/2 ; j >= i; j--) {
printf (" ");
}
for (j = 1; j <= 2*i - 1; j++) {
printf ("*");
}
printf ("\n");
}

for (i = 1; i <= (n-1)/2; i++) {
for (j = 1; j <= i; j++) {
printf (" ");
}
for (j = n-2; j >= 2*i - 1; j--) {
printf ("*");
}
printf ("\n");
}
}
else {
printf ("error!\n");
}
return 0;
}

顶部


 
当前时区 GMT+8, 现在时间是 2008-12-2 11:51 清除 Cookies - 联系我们 - 3S地带 - Archiver - WAP - 赣ICP备07006302号
Powered by Discuz! 5.5.0  © Processed in 0.024609 second(s), 6 queries , Gzip enabled