对于基本的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;
}
以上代码包含了变量的输入输出,以此来观察是否可以运行正确。复制粘贴代码后,请自行取消注释观察实验现象,然后根据相应的提示修改编译代码。
以下为实验现象,清晰明了:
以上为原创代码,如有侵权,请私信。
如有疑问,请您留言。