您的位置:

c语言画对角线,c语言次对角线怎么表示

本文目录一览:

c语言!对角线

25

左右两条对角线和

是说两个对角线上所有元素的和

中间的5 被使用了两次。

用符号“□”“■”C语言画出正方形和正方形对角线

// Eclipse C++  和 Code::Block  调试通过

// 提供控制台简易菜单 以及 正方形 和 长方形 输出。

// 长方形 对角线 输出不稳定 (几何方程离散化需要更复杂的算法,故为深入)长宽较大时可以用

// 边长大约32 窗口无法显示完整

#include iostream

#include stdlib.h

#include stdio.h

#include conio.h

using namespace std;

// func declaration-----------------------------------------

void set_prefix_str(char* str, int len, char ch);

void println_str(const char* str);

void print_pix(const char* str);

int print_rectangle(float rectX,float rectY);

// gloabl --------------------------------------------------

const char* PIX0 = "□";

const char* PIX1 = "■";

int LEN = 8;

char* PREFIX = NULL;

// main menu -----------------------------------------------

int main()

{

    float rectX;

    float rectY;

    int option = -1;

    set_prefix_str( PREFIX, LEN, ' ' );

    while(1) {

        system("cls");

        println_str("");

        println_str("");

        println_str("  Print Rectangle");

        println_str("");

        println_str("");

        println_str("[1] Print 正方形");

        println_str("[2] Print 长方形(不稳定)");

        println_str("[3] setting");

        println_str("");

        println_str("[0] Exit");

        println_str("");

        option = getch();

        println_str("");

        if ( option  '0' or option  '3' ) {

            continue;

        }

        if ('0'==option) {

            break;

        }

        if ('3'==option) {

            print_pix("设置左侧缩进: ");

            cinLEN;

            set_prefix_str( PREFIX, LEN, ' ' );

            continue;

        }

        if ('1'==option) {

            print_pix("正方形边长: ");

            cinrectY; rectX=rectY;

            println_str("");

        }

        if ('2'==option) {

            print_pix("矩形长: ");

            cinrectX;

            println_str("");

            print_pix("矩形高: ");

            cinrectY;

            println_str("");

        }

        if (rectX0 or rectX64) {

            println_str("X参数范围错误");

            system("pause");

            continue;

        }

        if (rectY0 or rectY64) {

            println_str("Y参数范围错误");

            system("pause");

            continue;

        }

        system("cls");

        println_str("");

        print_rectangle(rectX,rectY);

        println_str("");

        system("pause");

        continue;

    }

    return 0;

}

// tools ---------------------------------------------------

void println_str(const char* str) {

    cout str endl PREFIX; // or use printf to print

}

void print_str(const char* str) {

    cout str PREFIX; // or use printf to print

}

void print_pix(const char* str) {

    cout str; // or use printf to print

}

void set_prefix_str(char* str, int len, char ch) {

    if ( str ) {

        free(str);

    }

    //use new or malloc

    str = (char*) malloc( sizeof(char)*(len+1) );

    //new char[](len+1)

    //delete[](str)

    for (int i = 0; i  len; ++i) {

        str[i] = ch;

    }

    str[len] = '\0';

}

int print_rectangle(float rectX, float rectY) {

    int maxX = (int)(rectX);

    int maxY = (int)(rectY);

    //对角线方程 y = kx + b

    //正方形则 k = +/-1

    float k1 = maxY/(float)(maxX);

    float k2 = -maxY/(float)(maxX);

    int count = 0;

    for (int y = 0; y = maxY; ++y) {

        for (int x = 0; x = maxX; ++x) {

            //横边方程

            if (0==y or maxY==y) {

                print_pix(PIX1);

                ++count;

                continue;

            }

            //纵边方程

            if (0==x or maxX==x) {

                print_pix(PIX1);

                ++count;

                continue;

            }

            //对角线方程 y = kx + b

            if ((int)(k1*x)==y or (int)(k2*x)+maxY==y) {

                print_pix(PIX1);

                ++count;

                continue;

            }

            print_pix(PIX0);

            ++count;

            continue;

        }

        println_str("");

    }

    return count;

}

c语言对角线

从左上角到右下角的对角线叫右下对角线,也叫主对角线。

从右上角到左下角的对角线叫左下对角线,也叫副对角线。