c - #QNANO 在 C 中表示或表示什么?

标签 c vector struct

#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。 我查了所有的网站,但没有找到正确的发生原因 错误。 也有人可以指定有多少这样的错误类型。 **代码中的错误是故意的。

最佳答案

Q 可能意味着它是一个 quiet not-a-number . O 可能意味着溢出。

您使用的具体平台和编译器是什么?

关于c - #QNANO 在 C 中表示或表示什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27128408/

相关文章:

c - 错误: argument of type "HNode *" is incompatible with parameter type "HNode *"

C++:在堆栈中存储结构

c - 为三元运算符内的动态转换生成的代码不正确?

带有 C 库的 Python

c++ - vector 下标超出范围 - C++

c++ - 减少STL vector 的容量

c - 在 C 中动态调整结构的大小

c - 在c中添加笑脸

c - 打印链表内容只打印第一个节点

c++ - 写入 vector < vector <bool>>