首页 > 其他分享 >【C语言】用代码绘制线性函数包围图

【C语言】用代码绘制线性函数包围图

时间:2024-11-18 23:44:09浏览次数:3  
标签:height valid MySymbol printf 线性 line C语言 绘制 输入

题目:

在这里插入图片描述
绘制左边图的输出图像,函数已给出。


原因分析:

提示:这里填写问题的分析:

例如:Handler 发送消息有两种方式,分别是 Handler.obtainMessage()Handler.sendMessage(),其中 obtainMessage 方式当数据量过大时,由于 MessageQuene 大小也有限,所以当 message 处理不及时时,会造成先传的数据被覆盖,进而导致数据丢失。


解决方案:

思路
对于原来的坐标几何图形,2<=n,y<=x<=2n-y,1<=y<=x。
我们用来写C代码的函数首先要确定三角形高的范围,至少要2。
将图形分隔成上下两部分。从最高的顶点到三角形高的部分,和其下面的部分。
使用line表示行数,height表示高(由用户输入),line最大为2*height-1(对应2n-1),然后使用循环来处理每一行的输出。
判断行line是否等于高height来将图形分隔成上下两部分,判断条件为line是否<=height。
MySymbol用于输出*,相当于x,由于直线方程y=-x+2n,斜率为-1,所以对应上半的输出图像上随着行数+1而*号数量+1,MySymbol起始值为1,到函数交点x=n时停止,也就是第n行(第height行)。
下半部分,MySymbol递减至1。对应每次值应该为2*height-line(图像下半部分的边界为x=y,line+y=line+x=line+MySymbol=2*height所以MySymbol对应2*height-line)。

代码

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

int main() {

    int height, line, MySymbol, valid = 0; //height为高,line为行数,MySymbol为*的计数,valid用于验证输入
    
    while (1) {
        printf("请输入三角形的高(需要大于1且小于30): ");
        valid = scanf_s("%d", &height);

        // 检查输入的内容是否符合要求 
        if (valid == 1 && height > 1 && height < 30) {
        break; // 输入有效,退出循环
        }
        else {
        printf("请重新输入符合规范的数字。\n\n");
        // 清除输入缓冲区
        while (getchar() != '\n'); // 丢弃无效输入  
        }
    }

    // 绘制图形  
    for (line = 1; line <= 2 * height - 1; line++) {
        //上半部分绘制
        if (line <= height)
        {
            for (MySymbol = 1; MySymbol <= line; MySymbol++)
            {
                printf("*");
            }
            printf("\n");
        }
        //下半部分绘制
        else {
            for (MySymbol = 2*height-line; 1<=MySymbol; MySymbol--)
            {
                printf("*");
            }
            printf("\n");
        }

    }

    return 0;
}

输出结果

标签:height,valid,MySymbol,printf,线性,line,C语言,绘制,输入
From: https://blog.csdn.net/qq_44954543/article/details/143869903

相关文章

  • Java子类继承父类哪些内容 C语言初阶指针数组末
    1.publicclasstest18{/*publicstaticvoidmain(String[]args){Ziz1=newZi();Ziz2=newZi("zhangsan",15);}}classFu{Stringname;intage;publicFu(){}publicFu(Stringname,intage)......
  • 【C语言的奥秘2】分支语句、循环语句、转向语句(1)
    一、控制语句及其分类控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。可分成以下三类:1.条件判断语句也叫分支语句:if语句、switch语句;2.循环执行语句:dowhile语句......
  • 学习c语言——进阶
    学习c语言——进阶指针的学习1.使用指针交换数字voidswop(int*a,int*b){intt=*a;printf("%p\n",&t); printf("%p\n",&a); printf("%p\n",a);*a=*b;*b=t;}/*其中,前三行分别输出变量t、指针变量a和指针变量a所指向的......
  • Linear超高PSRR线性稳压器特点与应用
    Linear电源给人的印象,好像一直都是性能比较高。最近网上找到了一款他们家的超高PSRR、低噪声的线性稳压器LT3045。这颗LDO芯片非常经典,1MHz下仍有76dB的PSRR,叫人印象深刻。PSRR指标,在高分辨率高速ADC、无线和RF的应用里很关键。每一种芯片都是针对用户的某些应用而特别优化了某......
  • C语言 | 指针 | 野指针 | 数组指针 | 指针数组 | 二级指针 | 函数指针 | 指针函数
    文章目录1.指针的定义2.指针的加减运算3.野指针4.指针&数组&传参&字符数组5.数组指针&指针数组6.二级指针7.指针函数&函数指针&回调函数8.函数指针数组&指向函数指针数组的指针1.指针的定义指针是内存中一个最小单元的编号,也就是地址。平常口语中所......
  • Wincc 7.5SP2下VBA编程批量设置变量线性标定
    继续学习wincc下面VBA编程,这个练习实现变量线性标定。在前面练习基础上做,有REAL1至REAL10共10个变量,通过VBA脚本对Real1至Real5设置线性标定。写下面的VBA脚本: SubSetTagScaleParameter()DimhmigoAshmigoDimstrTagNameAsStringDimiAsIntegerSethmigo=NewhmigoFo......
  • 港大ArcLab最新开源DEIO:第一个学习与传统非线性图优化紧密结合的单目事件惯性里程计
    原文链接:港大ArcLab最新开源DEIO:第一个学习与传统非线性图优化紧密结合的单目事件惯性里程计导读本文介绍了一种名为DEIO(DeepEventInertialOdometry)的新型单目深度事件惯性里程计框架。该方法创新性地将深度学习与传统非线性图优化相结合,通过可训练的事件束调整(e-DBA)与惯......
  • c语言的循环结构
    循环结构在生活中我们常常遇到需要重复处理的问题,我们在编程时解决需要重复处理的问题需要使用循环语句循环语句主要有3种:while()循环;do-while()循环和for()循环while()循环用法:while(循环条件){循环体;……}说明:当程序遇到while()循环的时候,首先会判断while()的......
  • 线性码、汉明重量、汉明距离
    点个关注吧谢谢!有升学问题等可以私信一、线性码(LinearCode)定义1:qqq阶线性码CC......
  • C语言的数组
    二&数组•数组的概念在数学中我们有集合的概念,那么在C语言中:数组是⼀组相同类型元素的集合;从这个概念中我们就可以发现2个有价值的信息:•数组中存放的是1个或者多个数据,但是数组元素个数不能为0。•数组中存放的多个数据,类型是相同的。数组分为⼀维数组和多......