先不说你代码逻辑,你这个代码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;
}
此处应该注意“&&”和“||”的正确使用。
使用“&&”逻辑与运算符,需要同时满足多种情况时。
使用“||”逻辑或运算符,需要满足几种情况中的一种时。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)