そのため、このサイトを検索してトピックを徹底的に調べましたが、役立つものを見つけることができませんでした.
私は友人のためにタスクを作成しています。C++ を使用してから 1 年以上になります。
したがって、私が直面している問題は、ポインターとポインターを介して構造体を返すことです。
以下にコードを示します。
#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;
等々。しかし、ループを使用したり、1 行でも書いたり、endl や \n を使用したりすると、値がごちゃ混ぜになり、意味不明な値が表示されます。
では、ここで何がうまくいかないのでしょうか?
構造体を使用することが重要であり、コードに従ってガイドしてください。