C语言基本练习(003-01)之调整terminal窗口大小与几种方式画圆

对于基本的console调试框的处理,我们一般无法处理它的大小。对于此,此程序包含了调整该窗口大小的代码。另外对于现在这个主题,指的是如何利用输出和输入窗口,得到一个圆形图案。此程序包含了该功能代码。

具体代码如下,应用了输入输出库,Windows库,还有数学运算库:

#include <stdio.h>
#include <stdlib.h>

#include<math.h>

#include <windows.h>
#include <conio.h>

void print2(int (*arr)[100], int row, int col)
{
	int i = 0;
	int j = 0;
	for (i = 0; i < row; i++)
	{
		for (j = 0; j < col; j++)
		{
			printf("%d ", arr[i][j]);
		}
		printf("\n");
	}
}

int xy[25*2*2][25*2*2]={0};

int main(){
     int i;
     int j;
     int ii;
     int iii;
     int jj;
     int jjj;


     HANDLE hOut; /*标准输出句柄*/
     COORD size = {560,720}; /*窗口大小*/
     SMALL_RECT rc = {0, 0, 560-1, 720-1}; //要设置的窗口显示的大小和位置
     //CONSOLE_CURSOR_INFO cursor = {1, FALSE}; /*光标信息,用于隐藏光标*/
     hOut = GetStdHandle(STD_OUTPUT_HANDLE);
     SetConsoleWindowInfo(hOut, TRUE, &rc);
     SetConsoleScreenBufferSize(hOut, size);
     //SetConsoleCursorInfo(hOut, &cursor);
     //CloseHandle(hOut);

    // int xy[25*2*2][25*2*2]={0};

    printf("please input your indent to print the circle"\
    "(the number of spaces):\n");
    scanf("%d", &i);
    printf("please input your radius of the circle:\n");
    scanf("%d", &j);

    //int rx = i +j;
    //int ry = j + 2;

    int rx = i;
    int ry = j;
    rx = j;

    int r_number = 0;

    double r_number2 = 0;



    for(jj = 0; jj <= 2*ry;jj++){
        for(ii = 0; ii <= 2*rx;ii++){
            r_number = abs(j^2-(rx-ii)^2-(jj-ry)^2);
            r_number2 = (double)(j^2)-(double)((rx-ii)^2)-(double)((jj-ry)^2);
            printf("%d",r_number/10);
            //if(abs((double)(j^2)-(double)((rx-ii)^2)-(double)((jj-ry)^2)/30.0)<=1.0){
            if(r_number/3<2){
                 //printf("%.1f",r_number2);
                 //printf(" ");
            }
            else{
                //printf("%d",r_number);
                //printf("%d",r_number2);
                //printf("*");
            }
        }
    printf("\n");
    }

   /*----------------------------------------------------------------
    for(jj = 0; jj <= 2*ry;jj++){
        for(ii = 0; ii <= 2*rx;ii++){

        }
    }
    */

    double a,b,c,d;

     for(jj = 0; jj <= 2*ry;jj++){
        for(ii = 0; ii <= 2*rx;ii++){
           //r_number = abs(j^2-(rx-ii)^2-(jj-ry)^2);
           a = 0.0;
           b = 0.0;
           d = 24.0;
           c = pow(d,2) - pow(a,2)  - pow(b,2);
           //r_number = abs(j^2-(ii)^2-(jj)^2);
           r_number = pow((double)j,2) - pow((double)ii-j,2)  - pow((double)jj-j,2);
           if(jj<12&&ii<12&&jj==0&&ii==0)
           printf("%d %d %d %d %f",r_number,ii,jj,j,c);
           if(abs(r_number/10)<2){
               xy[ii+1][jj+1]=1;
           }
        }
        printf("\n");
    }


    for(jj = 0; jj <= 2*ry;jj++){
        for(ii = 0; ii <= 2*rx;ii++){
               if(xy[ii+1][jj+1]==1){
                   printf("*");
               }
               else{
                   printf(" ");
               }
        }
        printf("\n");
    }


    print2(xy,100,100);

    printf("\n");
    printf("it is the end.thank you.\n");

    return 0;

}

以上代码包含了变量的输入输出,以此来观察是否可以运行正确。复制粘贴代码后,请自行取消注释观察实验现象,然后根据相应的提示修改编译代码。

以下为实验现象,清晰明了:

0b0298058b0a4c48a4431128f8785a4c.png

以上为原创代码,如有侵权,请私信。

如有疑问,请您留言。

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值