问题是关于输入6个不同三角形图的两条边和夹角。我们需要找到每个图的面积。
我使用二维和一维数组编写了这段代码,并将二维数组传递给一个 void 函数,该函数打印每个图的面积。这些是我得到的输入和它们各自的输出。我正在使用 Ubuntu 18.04 LTS 终端。
程序运行
输入:
1
137.4
80.9
0.78
2
155.2
92.62
0.89
3
149.3
97.93
1.35
4
160.0
100.25
9.00
5
155.6
68.95
1.25
6
149.7
120.0
1.75
输出:
Entered Data is:
1.000000 137.399994 80.900002 0.780000
2.000000 155.199997 92.620003 0.890000
3.000000 149.300003 97.930000 1.350000
4.000000 160.000000 100.250000 9.000000
5.000000 155.600006 68.949997 1.250000
6.000000 149.699997 120.000000 1.750000
Area of plot 1 is: 0.000000.
Area of plot 2 is: 0.000000.
Area of plot 3 is: 0.000000.
Area of plot 4 is: 0.000000.
Area of plot 5 is: 0.000000.
Area of plot 6 is: 0.000000.
程序:
#include <stdio.h>
#include <math.h>
void area(float p[6][4],int m,int n);
int main()
{
float a[6][4];
int i,j;
printf("Enter the plot no.,two sides and included angle.\n");
for(i=0;i<6;i++)
{
for(j=0;j<4;j++)
{
scanf("%f",&a[i][j]);
}
}
printf("Entered Data is:\n");
for(i=0;i<6;i++)
{
for(j=0;j<4;j++)
{
printf("%f ",a[i][j]);
}
printf("\n");
}
printf("\n");
area(a,6,4);
return 0;
}
void area(float p[6][4],int m,int n)
{
float ar[6];
int i;
for(i=0;i<6;i++)
{
ar[i] = (1/2)*(p[i][1])*(p[i][2])*sin(p[i][3]);
printf("Area of plot %d is: %f.\n",i+1,ar[i]);
}
}
在这个表达式中:
ar[i] = (1/2)*(p[i][1])*(p[i][2])*sin(p[i][3]);
(1/2)
计算为零,这意味着整个结果为零(因为零乘以零)。它为零的原因是因为它是整数除法,它给出了一个截断的整数作为其结果。使用0.5
来代替。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句