所以我通過搜索這個網站徹底瀏覽了主題,但是找不到可以幫助我的東西。如何從C++中的函數返回結構
我正在爲我的朋友做一個任務,讓我告訴你,自從我使用C++以來已經有一年或更長的時間了。
所以我面臨的問題是指針和返回結構通過指針。
這裏的代碼如下:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
struct student
{
int SUB[3];
};
struct AVGPCT
{
float avg;
float pct;
};
AVGPCT* CALC(student *A)
{
int x,y;
AVGPCT D[5]={0.0,0.0,0.0,0.0,0.0};
for(x=0;x<5;x++)
{
for(y=0;y<3;y++)
{
D[x].avg+=A[x].SUB[y];
D[x].pct+=A[x].SUB[y];
}
}
for(x=0;x<5;x++)
{
D[x].avg/=2;
D[x].pct/=300;
}
return (D);
}
void main(void)
{
int i,j;
student S[5];
AVGPCT *V;
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
cout << "Enter Marks Of Subject[" << (j+1) << "] Of Student [" << (i+1) <<"] [Max=100]:";
cin >> S[i].SUB[j];
}
}
V = CALC(S);
cout << "Average Number Of Student [1]: " << V->avg;
cout << (*V).pct;
getch();
}
現在的問題是,它給我一時間難以從位置檢索正確的價值觀。
我想用V ++增加指針。有趣的是,如果我使用的是正確打印值:
cout << V->avg;
cout << V->pct;
V++;
cout << V->avg;
cout << V->pct;
依此類推。但是,如果我使用循環或者寫一行代碼或者使用endl或\ n,那麼這些值就會出現混亂並出現亂碼值。
那麼在這裏會出現什麼問題呢?
重要的是我使用結構,也請根據代碼引導。
所以你想要的建議,但..你不需要建議? –
抱歉不清楚,我的意思是不拆掉我的代碼,並建議/建議完全不同的東西。 –
我會繼續前進。 –