Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何使用子程序将向量的所有分量转换为绝对值?_C_Absolute - Fatal编程技术网

C 如何使用子程序将向量的所有分量转换为绝对值?

C 如何使用子程序将向量的所有分量转换为绝对值?,c,absolute,C,Absolute,刚开始学习C,如果您能在以下方面帮助我,那就太好了: 我刚刚编写了一个程序,保存用户输入的4分量向量(使用名为save_vector)并打印它(使用名为print_vector)的函数),如果任何分量为负,它也会使用absolute_values函数以绝对值(正)打印所有分量 但是,我不知道如何使函数绝对值工作。其他两个函数工作得很好 期待阅读任何改进这段代码的建议!谢谢!:-) #包括 无效打印向量(整数N,浮点*V); void save_向量(int N,float*V); 无效绝对值(整

刚开始学习C,如果您能在以下方面帮助我,那就太好了:

我刚刚编写了一个程序,保存用户输入的4分量向量(使用名为
save_vector
)并打印它(使用名为
print_vector
)的函数),如果任何分量为负,它也会使用
absolute_values
函数以绝对值(正)打印所有分量


但是,我不知道如何使函数
绝对值
工作。其他两个函数工作得很好

期待阅读任何改进这段代码的建议!谢谢!:-)

#包括
无效打印向量(整数N,浮点*V);
void save_向量(int N,float*V);
无效绝对值(整数N,浮点*V);
内部主(空)
{
常数int n=5;
int i;
浮动v[n];
puts(“输入向量的5个分量:”);
保存向量(n,v);
puts(“\n向量为:”);
打印向量(n,v);
puts(“\n绝对向量为:”);
绝对_值(n,v);
返回0;
}
无效保存向量(整数N,浮点*V)
{
int i;

对于(i=0;i使用
V
而不是
V
。并且,在for循环中错过了大括号
{}

void absolute_values(int N, float * V)
{
    int i;
    for(i=0;i<N;i++){
      if (*(V+i)<0)
        V[i]=V[i]*(-1);
      printf(" %.2f ",*(V+i));
    }

}
void绝对值(int N,float*V)
{
int i;

对于(i=0;i作为@Hitokiri解决方案的替代方案,我也将函数
absolute_values
留在这里,但这次使用了条件运算符。此外,根据@Hitokiri的建议,我使用了
V[i]
,因为它看起来更干净

void absolute_values(int N, float * V)
{
    int i;
    for(i=0;i<N;i++)
    {
        printf(" %.2f ", ((V[i]<0)?-V[i]:V[i]));
    }
}
void绝对值(int N,float*V)
{
int i;

对于(i=0;i
absolute_values
有效。您只需打印出结果。尝试在之后再次调用
print_vector
。Hi@L.ScottJohnson谢谢您的回答。我刚刚编辑了我的问题,包括print()函数。但是,我仍然会收到相同的错误:
'v'未声明(首次在此函数中使用)
。此错误与
if(*(v+i)您应该使用
v
而不是
v
有关,@Hitokiri,非常感谢您的帮助!!!:-)
void absolute_values(int N, float * V)
{
    int i;
    for(i=0;i<N;i++)
    {
        printf(" %.2f ", ((V[i]<0)?-V[i]:V[i]));
    }
}