c语言如何输出n行的直角三角形(实心的)?

c语言如何输出n行的直角三角形(实心的)?,第1张

先不说你代码逻辑,你这个代码ij都是整数,循环自增不能用浮点数。

直角三角形,有等腰和非等腰,需要输入2个边,且只能按照两边比例来算,所以斜边只能是一个近似值。

我的代码,精度常量自行修改,边长越大,画面精度越好。(但是由于控制台固定大小,实际能显示的长度有限)。

#include <stdioh>

#define X 0001//精确度,越小精确

int main()

{

    char ch;

    int a,b,i,j;

    printf("请输入填充字符:"),scanf("%c",&ch);

    printf("请输入2个直角边的字符个数:"),scanf("%d%d",&a,&b);//默认a<=b

    if(a>b) a^=b,b^=a,a^=b;

    for(i=0;i<a;i++,printf("\n"))

        for(j=0;j<b;j++)

        {

            if(i==0){printf("%c",ch);break;}

            if(i!=0 && j==0)printf("%c",ch);

            if(i!=0 && j!=0 && a==b && j<=i)printf("%c",ch);//等腰

            if(i!=0 && j!=0 && a!=b && (double)i/j-(double)a/b>X) printf("%c",ch);//非等腰

        }

    return 0;

}

/c语言以直角三角形形式打出杨辉三角前十行,by MrKong/

#include <stdioh> 

int i,j,a[11][11]={0};/定义全局变量/

void main() 

{

void YHTriangle(int n);/声明函数/ 

void PrintYHTriangle(int n);/声明函数/ 

int n=0;   

while(n<1 || n>11)   /不超过11行/ 

printf("请输入杨辉三角形的行数:");     

scanf("%d",&n);   

}

  YHTriangle(n);/引用函数/ 

  PrintYHTriangle(n);/引用函数/

}

void YHTriangle(int n)/定义杨辉三角函数/

{

   

  for(i=0;i<n;i++)     

   a[i][0]=1;                            

   for(i=1;i<n;i++)     

   for(j=1;j<=i;j++)       

    a[i][j]=a[i-1][j-1]+a[i-1][j];    

}

void PrintYHTriangle(int n)/定义杨辉三角的输出函数/

{

YHTriangle(n);

for(i=0;i<n;i++)                    

    { 

     for(j=0;j<=i;j++)       

     printf("%5d",a[i][j]);     

     printf("\n");   

    } 

}

#include <cstdio>

#include <cmath>

int judge(double x)

{

if(int(x)==x)

{

return 1;

}

return 0;

}

int main()

{

for(int i=1;i<25;i++)

{

for(int j=i;j<25;j++)

{

if(judge(hypot(i,j))==1&&hypot(i,j)<25)

{

printf("%d %d %d\n",i,j,int(hypot(i,j)));

}

}

}

}

截图:

#include <stdioh>

int main(void)

{

int a,b,c;//保存三边数据

printf("请输入三角形三边:\n");

while (1)

{

scanf("%d %d %d",&a,&b,&c);//输入三边数据

if (((a+b)>c)&&((a+c)>b)&&((b+c)>a))//判断是否为三角形

{

printf("三角形三边为:%d,%d,%d\n",a,b,c);

break;

}

else

{

printf("这不是三角形,请重新输入:\n");

}

}

//计算平方数

a = a a;

b = b b;

c = c c;

//判断是否为三角形

if((a==(b+c))||(b==(a+c))||(c==(a+b)))

{

printf("yes\n");

}

else

{

printf("No\n");

}

return 0;

}

看你写的这样用

main()

{

printf("1\n23\n456\n7890");

}

个就可以解决。

你的意思是不是一直那样循环下去:

1

23

456

7890

01234

456789

这样的?是的话继续追问。

代码如下:

#include <iostream>

#include <iomanip>

#include <mathh>

using namespace std;

int main()

{

double a, b, c;

cout << "请输入边长a;";

cin >> a;

cout << "请输入边长b;";

cin >> b;

c = sqrt(aa + b b);

cout << setiosflags(ios::fixed) << setprecision(2) << "第三边的长度为" << c << endl;

}

return 0;

}

扩展资料

c语言输出保留任意小数:

printf("%nlf",value); //表示保留n位小数;

printf("%f",n,value); // n表示小数的位数,value表示结果;

printf("%mnlf",value); //表示控制宽度为m,保留n为小数,靠右对齐;

printf("%-mnlf",value); //表示控制宽度为m,保留n为小数,靠左对齐//当控制宽度小于数值的位数时,将以实际数值宽度为准;

printf("%lf",value); //表示保留整数;

scanf("\n%c%d",&value); //这么做,会跳过第一位数,从第二位数开始读// 符号起到跳过一位字符从下一位开始读的作用,%c会把第一位数当做字符跳过,注意把回车处理掉,当前面有输入 *** 作时。

1) 创建10个进程的PCB,每个PCB包括:进程名、进程状态、优先级(1~10)、需要在处理机上执行的时间(ms)、队列指针等;

2) 初始化10个PCB(产生随机数0或1,分别表示进程处于就绪态或等待态);

3) 根据调度算法选择一个就绪进程在CPU上执行;

4) 在进程执行过程中,产生随机数0或1,该随机数为1时,将等待队列中的第一个PCB加入就绪队列的对尾;

根据输入的三角形的三边判断三角形的类型,并输出其面积和类型。

#include<stdioh>

#include<stdlibh>

#include<mathh>

int main()

{

float a, b, c;

float s, area;

printf("please input three line:\n");

scanf("%f%f%f", &a, &b, &c);

//判断是否满足三角形条件:两边之和是否大于第三边;

if (a + b > c&&b + c > a&&a + c > a)

{

s = (a + b + c) / 2;

area = (float)sqrt(s(s - a)(s - b)(s - c));//三角形面积计算;

printf("the area is: %f", area);

printf("\n");

//判断三条边是否相等;

if (a == b&&a == c)

{

printf("等边三角形\n");

}

//判断三角形是否有两天边相等;

else if (a == b || a == c || b == c)

{

printf("等腰三角形\n");

}

//判断是否有两边的平方和大于第三边的平方;

else if ((aa + bb == cc) || (aa + cc == bb) || (bb + cc == aa))

{

printf("直角三角形\n");

}

else

{

printf("一般三角形\n");

}

}

else

{

printf("三边不能构成三角形\n");

}

system("pause");

return 0;

}

此处应该注意“&&”和“||”的正确使用。

使用“&&”逻辑与运算符,需要同时满足多种情况时。

使用“||”逻辑或运算符,需要满足几种情况中的一种时。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/12181656.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存