计算C中三角形边的长度
我正试图编写一个程序,借助毕达哥拉斯方程c²=a²+b²计算三角形一侧的长度。用户必须具有选择要计算哪一边的选项,这是我尝试过的:计算C中三角形边的长度,c,function,geometry,C,Function,Geometry,我正试图编写一个程序,借助毕达哥拉斯方程c²=a²+b²计算三角形一侧的长度。用户必须具有选择要计算哪一边的选项,这是我尝试过的: #include <conio.h> #include <stdio.h> #include <math.h> // Pitagora: // c=sqrt(pow(a,2)+pow(b,2)); // a=sqrt(pow(c,2)-pow(b,2)); // b=sqrt(
#include <conio.h>
#include <stdio.h>
#include <math.h>
// Pitagora:
// c=sqrt(pow(a,2)+pow(b,2));
// a=sqrt(pow(c,2)-pow(b,2));
// b=sqrt(pow(c,2)-pow(a,2));
int cateta(int x, int y){
int cat;
printf("Dati marimea lui:");
scanf("%d", &x);
printf("Dati marimea lui:");
scanf("%d", &y);
cat=sqrt(pow(x,2)-pow(y,2));
return cat;
}
int main(){
int a,b,c;
char l;
printf("Ce latura doriti sa aflati?");
printf("\n c : ipotenuza\n a : cateta alaturata\n b : cateta opusa\n");
printf("Introduceti litera laturei respective : ");
scanf("%s", &l);
if (l == a){
a=cateta(c,b);
printf("Marimea catetei alaturate este: %d", a);
}
else if (l == b){
b=cateta(c,a);
printf("Marimea catetei opuse este: %d", b);
}
else {
c=sqrt(pow(a,2)+pow(b,2));
printf("Marimea ipotenuzei este: %d", c);
printf("\n");
}
getch ();
return 0;
}
但是,由于某种原因,当我给变量&l赋值时,程序会显示这段代码的内容:printfMarimea ipotenuzei este:%d,c;而不是扫描x和y的值,并终止。下面是一张结果图片:您在scanf中使用%s作为字符类型变量,请改为使用此变量
scanf(" %c", &l);
首先,您需要将scanf语句更改为scanf%c,&l; 现在,变量l包含用户输入的字符。 接下来,在比较过程中,将if条件更改为ifl=='a',如果l=='b',因为a和b是字符文本 有了这些变化,程序应该可以运行了!
快乐编码 扫描%s,&l;更改为扫描%c,&l;另外,只是一个建议,请提供一些英文评论。很容易理解。你的问题与标题不匹配。另外,如果l==a,l==b是错误的。也许您想要的是,如果l='a',请不要使用图像来显示纯文本输出。一般来说,声誉较高的海报很乐意插入图像,但只有在相关的情况下。只需复制文本即可。