為什麼我的函數返回 0.0?(C 代碼)

杰拉爾多參議員

我有一個函數可以計算具有用戶指定大小(維度)的向量的大小

float VectorMagnitude(int vectorA[], int sizeVector)
{
    float total = 0;
    for (int i = 0; i < sizeVector; i++) {
        total = total + (vectorA[i] * vectorA[i]);
    }
    total = sqrt(total);
    return total;
}

如果我打印結果

printf("Magnitude of vector = %.2f\n", VectorMagnitude(Vec, size));

如果我運行調試器vectorA = {7, 5, 7}(顯然大小為 3),則total返回之前的值是 11.09...(這是正確的)。

但是,打印值為 0.0。

我究竟做錯了什麼?(它用於 uni 項目,因此隨機值只是填充物,我還不需要使用實際值)

完整代碼 main.c

#include <stdio.h>
#include <stdlib.h>
#include "matrixOperations.h"

int main()
{
int size;
 printf("Enter size of vector:\n");
 scanf("%d",&size);
int Vec[size];
FillMatrix(Vec,1,size);
DisplayMatrix(Vec,1,size);
printf("Magnitude of vector = %.2f\n",VectorMagnitude(Vec,size));




    return 0;
}

矩陣操作.c

#include "matrixOperations.h"
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/////////////////////////////////
 void DisplayMatrix(int matrix[], int sizeRow, int sizeCol)
 { printf("Print matrix:\n");
    for (int i=0;i<sizeRow;i++)
        {
            for (int j=0;j<sizeCol;j++)
                {
                    printf("%d ", matrix[i*sizeCol+j]);
                }
                 printf("\n");
        }
        printf("\n");
 }
////////////////////////////////////////////////
void FillMatrix(int matrix[], int sizeRow, int sizeCol)
 {
    srand(time(0));
    for (int i=0;i<sizeRow;i++)
        {
            for (int j=0;j<sizeCol;j++)
                {
                    matrix[i*sizeCol+j]=rand()%10;
                }
        }
 }


/////////////////////////////////////////////////////////////
 float VectorMagnitude(int vectorA[], int sizeVector)
 {
 float total=0;
 for (int i=0;i<sizeVector;i++)
    {
     total=total+ (vectorA[i]*vectorA[i]);
    }
    total = sqrt(total);
 return total;
 }
/////////////////////////////////////////////////////////////

矩陣操作.h

#ifndef MATRIXOPERATIONS_H_INCLUDED
#define MATRIXOPERATIONS_H_INCLUDED



#endif // MATRIXOPERATIONS_H_INCLUDED
下午

#include "matrixOperations.h"在 main.c 中丟失了......錯誤......我的意思是:你在函數的範圍內缺少一個有效的原型(在沒有原型的情況下,C 假設函數接受int參數並返回int值)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

為什麼當我有 0x00 時我的數據被剪切?

為什麼 VS 為我的析構函數標記 C26432?

為什麼 getItem 在我的代碼中使用 asyncStorage 返回 'Promise { "_U": 0, "_V": 0, "_W": null, "_X": null, }'?

進程已完成,退出代碼為 -1073741819 (0xC0000005) - C, CLion 但輸出沒有任何問題

為什麼我的代碼得到不同的結果?

CS50/Substitution – 為什麼 tolower() 函數在我的代碼中不起作用?

無論我做什麼,我作業中的函數都返回 0

為什麼這段代碼在函數執行後需要這麼長時間?

為什麼我的 for 循環後的代碼被忽略?

為什麼 C 允許返回與函數返回類型不同的類型?

我無法將代碼拆分為函數

我的代碼有什麼問題?( C++ if else with datastructures )

使用最後退出代碼 0 啟動 bash

為什麼當我用 stl 向量替換數組時,我的代碼會變慢,在 C++ 中,數組是否比向量更快?

為什麼我的反向鍊錶代碼只返回第一個節點?

我在抓取時做錯了什麼。不為我的代碼返回任何值

儘管返回 0,但為什麼函數返回兩個值?

為什麼我的 Javascript 代碼返回對像對象?

不太明白我在代碼中的 forEach 函數中的 i 代表什麼

為什麼我的代碼會針對此問題返回錯誤?

為什麼我的代碼調用一個函數兩次?

當未連接的代碼行被取消註釋時,為什麼這個 C 程序會檢測到字符串中的兩個 '\0' 字符?

使用python代碼將csv文件中的數據加載到oracle db時,真值顯示為1,假值顯示為0

如何在不退出代碼 0 的情況下保持我的 docker-compose 運行

為什麼 Next JS 中的異步函數在我的 Typescript 代碼中返回空對象?

為什麼我的代碼不生成沒有 str 的隨機數?

為什麼我不能寫“if mod = 0”?

函數代碼是用oracle編寫的。我無法理解它在做什麼

為什麼我的代碼沒有增加計數?