C语言必会100题(13)。打印出杨辉三角形/学习putpixel画点/画椭圆ellipse/利用ellipse and rectangle 画图/一个最优美的图案

特此鸣谢:鱼C_小甲鱼(B站up主)不二如是(鱼C论坛大佬)
题目来源:https://fishc.com.cn
注:这些题在网上都可以搜到,题下面的代码大多是流传下来的答案(我重新排了一下版,增加了可读性),部分是本人经过深思熟虑后编写的。

61,打印出杨辉三角形

  • 题目:打印出杨辉三角形(要求打印出10行如下图)
    1,	1
    2,	1 1
    3,	1 2 1
    4,	1 3 3 1
    5,	1 4 6 4 1
    6,	1 5 10 10 5 1
    7,	1 6 15 20 15 6 1
    8,	1 7 21 35 35 21 7 1
    9,	1 8 28 56 70 56 28 8 1
    10      1 9 36 84 126 126 84 36 9 1
  • 程序源代码:
    #include <stdio.h>
    
    int main()
    {
        int i, j;
        int a[10][10];
    
        for (i = 0; i < 10; i++){
    
            a[i][0] = 1;
            a[i][i] = 1;
        }
    
        for (i = 2; i < 10; i++) {
    
            for(j = 1; j < i; j++) {
    
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            }
        }
    
        for (i = 0; i < 10; i++) {
    
            for(j = 0; j <= i; j++) {
    
                printf("%d ", a[i][j]);
                if (i == j) {
    
                    printf("\n");
                }
            }
        }
    
        return 0;
    }

62,学习putpixel画点

  • 题目:学习putpixel画点
  • 程序源代码:
    //VC6.0中是不能运行的,要在Turbo2.0/3.0中
    // 我用的是codeblocks也不能使用,没有graphics文件,网上有教如何安装的,但是我不敢弄
    #include "stdio.h" 
    #include "graphics.h" 
    
    int main() 
    { 
        int i,j,driver=VGA,mode=VGAHI; 
        initgraph(&driver,&mode,""); 
        setbkcolor(YELLOW); 
        for(i=50;i<=230;i+=20) 
        for(j=50;j<=230;j++) 
        putpixel(i,j,1); 
        for(j=50;j<=230;j+=20) 
        for(i=50;i<=230;i++) 
        putpixel(i,j,1); 
    }

63,画椭圆ellipse

  • 题目:画椭圆ellipse
  • 程序源代码:
    //VC6.0中是不能运行的,要在Turbo2.0/3.0中
    // 我用的是codeblocks也不能使用,没有graphics文件,网上有教如何安装的,但是我不敢弄
    #include "stdio.h" 
    #include "graphics.h" 
    #include "conio.h" 
    
    int main() 
    { 
        int x=360,y=160,driver=VGA,mode=VGAHI; 
        int num=20,i; 
        int top,bottom; 
        initgraph(&driver,&mode,""); 
        top=y-30; 
        bottom=y-30; 
        
        for(i=0;i<num;i++) 
        { 
            ellipse(250,250,0,360,top,bottom); 
            top-=5; 
            bottom+=5; 
        } 
        
        getch(); 
    }

64,利用ellipse and rectangle 画图

  • 题目:利用ellipse and rectangle 画图
  • 程序源代码
    //VC6.0中是不能运行的,要在Turbo2.0/3.0中
    // 我用的是codeblocks也不能使用,没有graphics文件,网上有教如何安装的,但是我不敢弄
    #include "stdio.h" 
    #include "graphics.h" 
    #include "conio.h" 
    
    int main() 
    { 
        int driver=VGA,mode=VGAHI; 
        int i,num=15,top=50; 
        int left=20,right=50; 
        initgraph(&driver,&mode,""); 
        
        for(i=0;i<num;i++) 
        { 
            ellipse(250,250,0,360,right,left); 
            ellipse(250,250,0,360,20,top); 
            rectangle(20-2*i,20-2*i,10*(i+2),10*(i+2)); 
            right+=5; 
            left+=5; 
            top+=10; 
        } 
        
        getch(); 
    }

65,一个最优美的图案

  • 题目:一个最优美的图案
  • 程序源代码:
    //VC6.0中是不能运行的,要在Turbo2.0/3.0中
    // 我用的是codeblocks也不能使用,没有graphics文件,网上有教如何安装的,但是我不敢弄
    #include "graphics.h" 
    #include "math.h" 
    #include "dos.h" 
    #include "conio.h" 
    #include "stdlib.h" 
    #include "stdio.h" 
    #include "stdarg.h" 
    #define MAXPTS 15 
    #define PI 3.1415926 
    
    struct PTS { 
    int x,y; 
    }; 
    
    double AspectRatio=0.85; 
    void LineToDemo(void) 
    { 
    struct viewporttype vp; 
    struct PTS points[MAXPTS]; 
    int i, j, h, w, xcenter, ycenter; 
    int radius, angle, step; 
    double rads; 
    printf(" MoveTo / LineTo Demonstration" ); 
    getviewsettings( &vp ); 
    h = vp.bottom - vp.top; 
    w = vp.right - vp.left; 
    xcenter = w / 2; /* Determine the center of circle */ 
    ycenter = h / 2; 
    radius = (h - 30) / (AspectRatio * 2); 
    step = 360 / MAXPTS; /* Determine # of increments */ 
    angle = 0; /* Begin at zero degrees */ 
    for( i=0 ; i<MAXPTS ; ++i ){ /* Determine circle intercepts */ 
    rads = (double)angle * PI / 180.0; /* Convert angle to radians */ 
    points[i].x = xcenter + (int)( cos(rads) * radius ); 
    points[i].y = ycenter - (int)( sin(rads) * radius * AspectRatio ); 
    angle += step; /* Move to next increment */ 
    } 
    circle( xcenter, ycenter, radius ); /* Draw bounding circle */ 
    for( i=0 ; i<MAXPTS ; ++i ){ /* Draw the cords to the circle */ 
    for( j=i ; j<MAXPTS ; ++j ){ /* For each remaining intersect */ 
    moveto(points[i].x, points[i].y); /* Move to beginning of cord */ 
    lineto(points[j].x, points[j].y); /* Draw the cord */ 
    } } } 
    int main() 
    {int driver,mode; 
    driver=CGA;mode=CGAC0; 
    initgraph(&driver,&mode,""); 
    setcolor(3); 
    setbkcolor(GREEN); 
    LineToDemo();} 
    

     

posted @ 2022-03-20 21:20  炸天帮帮主  阅读(60)  评论(0编辑  收藏  举报