#include<stdio.h>
#include<math.h>
int n;
struct vector
{
int dir[100];
};
int dot(struct vector v1, struct vector v2)
{
int dp,j;
dp=0;
for(j=0;j<n;j++)
{
dp = dp + (v1.dir[j]*v2.dir[j]);
}
return dp;
}
float cosine(int vdot, float v1mod, float v2mod)
{
float cos1, vdo = vdot;
cos1 = (vdot/(v1mod*v2mod));
return cos1;
}
float modul(struct vector v1)
{
int j;
float v1mod;
float deg = 0;
for(j=0; j<n; j++)
{
deg = deg + ((v1.dir[j])*(v1.dir[j]));
}
v1mod = sqrt(deg);
}
int main()
{
int j;
scanf("%d", &n);
struct vector v1;
struct vector v2;
for(j=0;j<n;j++)
{
scanf("%d", &v1.dir[j]);
}
for(j=0;j<n;j++)
{
printf("%d/", v1.dir[j]);
}
printf("\n");
for(j=0;j<n;j++)
{
scanf("%d", &v2.dir[j]);
}
for(j=0;j<n;j++)
{
printf("%d/", v2.dir[j]);
}
printf("\n");
int vdot;
float v1mod, v2mod, cos2;
vdot = dot(v1,v2);
printf("%d\n", vdot);
v1mod = modul(v1);
printf("%f\n", v1mod);
v2mod = modul(v2);
printf("%f\n", v2mod);
cos2 = cosine(vdot, v1mod, v2mod);
printf("cosine = %f\n", cos2);
}
當我們編譯代碼,輸出爲餘弦正顯示出「1#QNANO。 我檢查所有的網站,但沒有在那裏我才找到了 錯誤的發生正確的原因。 也可以某一個指定這樣的多個錯誤類型有多少呢。 **在代碼中的錯誤是故意的。#QNANO在C中表示或表示什麼?
不是數字(例如'sqrt(-1,2)'或'pow(0,0)')。 – 2014-11-25 13:49:01
請格式化您的代碼。 – 2014-11-25 13:49:43
此代碼不會編譯'modul()'缺少返回值。由於這不能成爲你正在運行的代碼,我們怎麼能確定它顯示你所問的錯誤?此外,該程序在用戶輸入數據中運行 - 爲了能夠重現您的問題,我們需要知道輸入測試數據。 – Clifford 2014-11-25 14:29:18