我必须编写一个程序的代码,该程序接受带有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]");
当我运行它时,它显示出一千个错误,但我认为错误是合乎逻辑的。你能告诉我我错在哪里吗?
答案 0 :(得分:2)
您不能使用|
作为绝对值函数。
改为使用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;
}
答案 1 :(得分:1)
使用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 %d\n",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;
}
答案 2 :(得分:0)
您需要使用 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;
}
答案 3 :(得分:0)
你不能使用“| x |”绝对值。仅适用于or
语句和按位。
为了做绝对,你需要自己编写代码或使用abs
函数
最重要的是你有一堆synex错误
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("%d\n",&n);
for (i=0;i<n,i++)
{
printf("Write the element %d",i);
scanf("%d\n", &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]);
}
}