数组c编程的绝对值

  • 本文关键字:绝对值 编程 数组 c
  • 更新时间 :
  • 英文 :


我必须为一个程序编写一段代码,该程序接受一个包含n个元素的数组,然后检查该数组是否有两个绝对值相等的连续值。结果必须显示如下:

|v[i]|=|v[i+1]|
|v[j]|=|v[j+1]|

所以

#include <stdio.h>
    int i,j,n;
    {
        int v[100];
        printf ("Please write n:");
        scanf("%d",&n);
        for (i=0;i<n,i++)
            printf( "Write the element %d",i);
        scanf("%d", &v[i]);
    }
    for (i=0;i<n;i++)
        abs(v[i])=abs(V[i+1]);
    printf("Elements are %d',v[i]");
    for (j=0;j<n;j++)
        abs(v[j])=abs(v[j+1]);
    printf("Elements are %d',v[j]");

当我运行这个程序时,它显示了一千个错误,但我认为这些错误是合乎逻辑的。你能告诉我哪里错了吗?

不能将|用作绝对值函数。

请改用abs()

所以你应该做一些类似abs(v[i])的事情。。。

if (abs(v[i]) == abs(v[i+1]))

等等

以下是我的想法。。。

#include <stdio.h>
#include <stdlib.h>
main()
{
    int v[100];
    int n = -1, i;
    while (n < 1 || n > 100)
      {
            printf ("Please enter n (between 1 and 100):");
            scanf("%d",&n);
      }
    for (i=0;i<n;i++)
      {
        printf( "Enter element %d", i );
        scanf("%d", &v[i]);
      }
    for (i=0;i<n;i++)
      {
        if (abs(v[i]) == abs(v[i+1]))
        {
          printf ( "|v[%d]| = |v[%d]|n", i, i+1);
        }
      }
    return 0;
}

对绝对值使用abs()函数。包括此的stdlib.h标头
其他一些更正:

#include <stdio.h>
#include <stdlib.h>
int main()
{
     int i,n;
     int v[100];
     printf ("Please write n:");
     scanf("%d",&n);
     for (i=0;i<n;i++)
     {
            printf( "Write the element %dn",i);
            scanf("%d", &v[i]);
     }
     for (i=0;i<n-1;i++)
     {
            if(abs(v[i])==abs(v[i+1]))
                printf("|v[%d]|=|v[%d]|n",i,i+1);
     }
     return 0;
}

您不能使用"|x|"作为绝对值。仅用于CCD_ 6语句和逐位。

为了完成绝对操作,您需要自己编写代码或使用abs函数

除此之外,你还有一堆联因错误

  • 无主要功能
  • printf("Elements are %d',v[i]");不对,你本想做printf("Elements are %d",v[i]);

一些建议:

#include <stdio.h>
#include <stdlib.h>
main()
{
    int i,j,n;
    int v[100];
    printf("Please write n:");
    scanf("%dn",&n);
    for (i=0;i<n,i++)
    {
       printf("Write the element %d",i);
       scanf("%dn", &v[i]);
    }
    for (i=0;i<n-1;i++)
    {
     if(abs(v[i])==abs(V[i+1]))
        printf("Elements %d and %d are absolute equal", v[i], v[i+1]);
    }
}

您需要abs()函数。您需要确保已正确设置括号。在数组中循环时也需要小心(您可能会超出的范围)。

这里有一些可以帮助的东西:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int i,j,n;
    int v[100];
    printf ("Please write n: ");
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        printf( "Write the element %d n",i);
        scanf("%d", &v[i]);
    }
    for (i=1;i<n;i++)
    {
        if(abs(v[i-1])==abs(v[i]))
        {
            printf("Elements at positions %d and %j n",i-1, i);            
            printf("Elements are %d and %d n",v[i-1], v[i]);
        }  
    }
    for (j=1;j<n;j++)
    {
        if(abs(v[j-1])==abs(v[j]))
        {
            printf("Elements at positions %d and %j n",j-1, j);
            printf("Elements are %d and %j n",v[j-1], v[j]);
        }
    }
    return 0;
}

最新更新