C语言设计案例张传学P6编写输出圣诞树

作者&投稿:余厕 (若有异议请与网页底部的电邮联系)
用c语言输出这个圣诞树,在线等,很急~

#include
void prt(int a,int b)
{int i,j;
for(i=0;i<5;i++)
{for(j=0;j<b-i-a;j++)
printf(" ");
for(j=-(i+a);j<=i+a;j++)
printf("*");
printf("
");
}
}
int main()
{int i;
for(i=0;i<10;i+=2)
prt(i,12);
for(i=0;i<3;i++)
printf(" ***
");
return 0;
}

为了更方便的设计圣诞树的形状,我用的是设计递归函数的方法。程序如下:
#include
#include
void shu(int n)
{
int i;
for (i = 1; i <= 6 - n; i++)
{
printf(" ");
}
for (i = 1; i <= 2 * n - 1;i++)
{
printf("*");
}
printf("
");
if (n != 6)
shu(n + 1);
}
void gen(int n)
{
int i;
for (i = 1; i <= n; i++)
{
printf(" *****
");
}
}
void main()
{
shu(1);
shu(2);
gen(5);
}
仿真结果如图1。

改变min函数调用函数的参数,可以设计圣诞树形状和高度等,如下
void main()
{
shu(1);
shu(2);
shu(3);
gen(4);
}
将得到图2的形状。

不知你要画的圣诞树长什么样?给你找了一个代码:

#include <stdio.h>
void printTree(int n)
{
    int i=0,j=0,k=0,max=n*n-n+5;
    for (i=1;i<=n;i++)
    {
        for (j=1;j<=i*(i-1)/2+3;j++)
        {
            for (k=0;k<(max-(2*j-1))/2;k++)
                putchar(' ');
            for (k=(max-(2*j-1))/2;k<(max+2*j-1)/2;k++)
                putchar('*');
            putchar('
');
        }
    }
    for (i=0;i<2;i++)
    {
        for (j=0;j<(max-1)/2;j++)
            putchar(' ');
        printf ("*
");
    }
}
int main()
{
    int n;
    scanf ("%d", &n);
    printTree(n);
    return 0;
}

执行结果如下:层数手动输入




C语言设计案例张传学P54中鸡兔同只
4.8得到代码如下:include <stdio.h>int main(){ int h = 8, f = 22, ch, r; for (ch = 0; ch <= h; ++ch){ if ((f-ch*2)%4==0){ r = (f-ch*2)\/4; printf ("鸡:%d只,兔:%d只\\n", ch, r); } } return 0;}4.9得到如下代码:i...

C语言设计案例张传学P6编写输出圣诞树
include <stdio.h>void printTree(int n){ int i=0,j=0,k=0,max=n*n-n+5; for (i=1;i<=n;i++) { for (j=1;j<=i*(i-1)\/2+3;j++) { for (k=0;k<(max-(2*j-1))\/2;k++) putchar(' '); for (k=(max-(2*j-1))\/2;k<(max+2...

C语言设计案例张传学P137指针错误
temp指针没有分配内存。改成这样。void swap(int *p1, int *p2){ int temp;temp = *p1;p1 = *p2;p2 = temp;} 调用方式。int i = 1;int j = 2;swap(&i, &j);

C语言设计案例张传学P43华氏转摄氏
printf( "%dF=%gC\\n", a[i],5.0\/9*(a[i]-32) ) ;return 0;}

阿克苏市18944045870: C语言设计案例张传学P75编写电脑随机偶数 -
揣泊星元: 6.6得到如下代码:#include #include #include int main(){ int num[10][2], answer[10], sc = 0, t; int op[10]; i...

阿克苏市18944045870: C语言设计案例张传学P73编写如何积输入 -
揣泊星元: 6.4代码如下:#include int main(){ int ans = 1, i; for (i = 2; i <= 10; i += 2){ ans *= i; } printf ("%d\n", ans);...

阿克苏市18944045870: C语言编写输出以下图案的程序 -
揣泊星元: 你好,程序如下:#include<stdio.h> void main(){int i,j,k;for(i=1;i<=4;i++){for(j=1;j<=4-i;j++)printf(" ");for(k=1;k<=2*i-1;k++)printf("*");printf("\n");}for(i=1;i<=4;i++){for(j=1;j<i+1 ;j++)printf(" ");for(k=1;k<=7-2*i;k++)printf("*");printf("\n");}} 有疑问提出.望采纳.

阿克苏市18944045870: C语言程序设计,输出形状为直角三角形的九九乘法表 -
揣泊星元: #include "stdio.h" int main(void) { int i,j; /*定义变量i,j分别为行和列*/ for(i=1;i<=9;i++) printf("%7d",i); printf("\n"); for(i=10;i<=76;i++) printf("%c",'-'); /* 输出“-”线,并延伸*/ printf("\n"); for(i=1;i<=9;i++){ for(j=1;j<=i;j++) printf("%2d*%d=%2d",i,j,i*j); /*输出每行乘以每列的结果*/ printf("\n"); } return 0; } 楼主可以参考下

阿克苏市18944045870: C语言设计案例张传学P135指针后加上 -
揣泊星元: #include<stdio.h> void main() { int a[]={10,20,30,40,50};//这里少了一个分号.int *p; p=&a[1]; printf("%d\n",*++p); }当p=&a[1] p指向a[1] 然后打印*++p 会先p自加 指向a[2] 然后打印*p 也就是a[2] 即原始程序会打印30 如果p=&a[1]后 增加*p++ 由于,++的结合性更强.所以 自加的是p 而不是*p 于是,*p++后,p自加指向a[2] 这样在printf的时候,p再自加一次指向a[3] 打印*p为40

阿克苏市18944045870: C语言设计案例张传学P110编写函数反回个 -
揣泊星元: 8.5得到如下代码:# include # define SIZE 10void input(int a[], int n){ int i; printf ("请输入%d个元素:", n); for (i = 0; i < ...

阿克苏市18944045870: 《C语言程序设计》编写程序:编写一个函数,main()函数调用该函数并输出.(函数中用到循环) -
揣泊星元: #include<stdio.h> int stu(int a); int main(void) { int su=10; stu(su); getche(); } int stu(int a) { int i=0; while(i<=a) { printf("i is %d",i); i++; } } 希望可以帮助你

阿克苏市18944045870: C语言设计案例张传学P165用20本书 -
揣泊星元: #include<stdio.h>#include<string.h>#define N 3 int main() {struct book{ char book_name[50]; char author[20]; char publisher[50]; struct date{ int year; int month; int day; }publish_date; float price; }; struct book bookinfo[N],t,*p=bookinfo; int i,j;for(i=0;i...

阿克苏市18944045870: c语言程序设计
揣泊星元: 你好,这下面是你要的代码#include<stdio.h>int main(){ int i,j,n=3; for(i=0;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); for(j=1;j<=2*i+1;j++) printf("%d",j<=i+1?j:j-i-1); printf("\n"); }}代码编译结果如图所示希望能帮到你,满意请采纳答案,点击【采纳答案】,谢谢 ^_^ 你的点赞或采纳是我继续帮助其他人的动力

阿克苏市18944045870: C语言程序设计实现任一字符和字符串长度的输出,其中字符和字符串内容由编程者自定 -
揣泊星元: 输入任意长度字符串62616964757a686964616fe59b9ee7ad9431333431343063,并输出打印字符串及其长度.#include<stdio.h>#include<malloc.h>#include<conio.h> char *input();//输入任意长度字符串(可包含空格),回车确认,返回输...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网