问题在于输入6个不同三角形图的两侧和夹角。我们需要找到每个图的面积。
我使用2-D和1-D数组编写此代码,并将2-D数组传递给void函数,该函数打印每个图的面积。这些是我得到的输入及其各自的输出。我正在使用Ubuntu 18.04 LTS Terminal。
程序运行
输入:
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]);
}
}
答案 0 :(得分:3)
在此表达式中:
str(12)
>>'12'
ar[i] = (1/2)*(p[i][1])*(p[i][2])*sin(p[i][3]);
的计算结果为零,这意味着整个结果为零(因为零乘以零就等于零)。之所以为零,是因为它是整数除法,它给出了一个被截断的整数作为结果。请改用(1/2)
。
答案 1 :(得分:0)
(1.0/2.0) * (p[i][1]) * (p[i][2]) * sin(p[i][3]);