iT邦幫忙

0

如何將副程式的陣列回傳至主程式中,並存成新的一維陣列

  • 分享至 

  • xImage

您好,
目前已經將陣列數據選取所需的欄位(如第二欄),
但不知道如何在主程式中將選到的欄位儲存至新的一維陣列posxau[M],
感謝大家幫忙!!

https://ithelp.ithome.com.tw/upload/images/20230301/20155496igvZzn3LXR.jpg

#include<iostream>
#include<fstream>
using namespace std;
const int M=10;
const int N=9;

double ShowVector(double A[]); 
void PickColume(double A[][N], int S, double B[]);
int main()
{
    double data[M][N] = {0};
    double PickV [M];
    double B1[M];
    double posxau[M];
	
    
	ifstream infile;
	infile.open("TEST.txt");
	for (int i=0;i<10;i++)
	{
		for (int j=0;j<9;j++)
		{
		 infile>>data[i][j];}
		
	}
	
	PickColume(data,2,PickV);
	ShowVector(PickV);

	// cout<<posxau[M]<<endl;
	infile.close();  
	system("pause");
	return 0;
}

double ShowVector(double A[])
{ for(int i=0;i<M;i++)
   cout<<A[i]<<endl; 
}

void PickColume(double A[][N],int S, double B[])
{ for(int j=0;j<M;j++)
    {B[j]=A[j][S];
    // cout<<B[j]<<endl;
	}
    return  ;
}
froce iT邦大師 1 級 ‧ 2023-03-01 13:33:19 檢舉
你不知道return是拿來幹嘛的?

https://crmne0707.pixnet.net/blog/post/335363882-c%23-%E5%BB%BA%E7%AB%8B%E5%87%BD%E5%BC%8F

看回傳值那邊。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0
JamesDoge
iT邦高手 1 級 ‧ 2023-03-01 13:31:08
#include<iostream>
#include<fstream>
using namespace std;
const int M=10;
const int N=9;

double ShowVector(double A[]); 
void PickColume(double A[][N], int S, double B[]);
int main()
{
    double data[M][N] = {0};
    double PickV [M];
    double posxau[M];
    double B1[M];

    ifstream infile;
    infile.open("TEST.txt");

    // 將測試資料從檔案讀入至data陣列中
    for (int i=0;i<10;i++)
    {
        for (int j=0;j<9;j++)
        {
            infile >> data[i][j];
        }
    }
    
    // 將data陣列中選定欄位(S)的數值存入B陣列中
    PickColume(data, 2, PickV);
    
    // 顯示B陣列中的數值
    ShowVector(PickV);

    // 將B陣列中的數值存入新的一維陣列posxau中
    for(int i = 0; i < M; i++) {
        posxau[i] = PickV[i];
    }

    // cout<<posxau[M]<<endl;
    infile.close();  
    system("pause");
    return 0;
}

double ShowVector(double A[])
{ 
    // 顯示傳入的一維陣列A中的數值
    for(int i=0; i<M; i++) {
        cout<<A[i]<<endl; 
    }
}

void PickColume(double A[][N],int S, double B[])
{ 
    // 選取二維陣列A中的第S欄,存入一維陣列B中
    for(int j=0; j<M; j++)
    {
        B[j]=A[j][S];
        // cout<<B[j]<<endl;
    }
    return;  
}

我要發表回答

立即登入回答