EDITED:私は試して検索していましたが、(j = = 3)の部分だけをフロートに変換する方法が見つかりませんでした.2から6までの評価(正確な単語のグレードまたはidk)が必要なためです-それ3,5になる可能性があるので、フロートが必要です。OK、私のコードをチェックしてください:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
unsigned int m[25][4], a[25][4], b[25][4];
int i,j,n,k=0,p=0,g=0,t=0;
do
{
cout<<"Enter number of students: ";cin>>n;
}
while(!(n>0 && n<=25));
for(i=0;i<n;i++)
{
cout<<"Student N:"<<i+1<<"\n";
for(j=0;j<4;j++)
if(j==0)
{
do
{
cout<<"Fak nomer: ";cin>>m[i][j];
}
while(!(m[i][j]>=10000000 && m[i][j]<100000000));
}
else if(j==1)
{
do
{
cout<<"Enter Speciallity - 52 for E, 61 for AIUT"<<endl;
cout<<"Code: ";cin>>m[i][j];
}
while(!(m[i][j]==52 || m[i][j]==61));
}
else if(j==2)
{
do
{
cout<<"Group: ";cin>>m[i][j];
}
while(!(m[i][j]==1 || m[i][j]==2 || m[i][j]==3 || m[i][j]==4));
}
else
{
//float f=m[i][j];(i tried to replace all m[i][j] with f but..)
do
{
cout<<"Avg. evaluation: ";cin>>m[i][j];
}
while(!(m[i][j]>=2 && m[i][j]<=6));
//m[i][j]=f;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<4;j++)
cout<<setprecision(8)<<m[i][j]<<"\t";
cout<<endl;
}
cout<<endl;
}
配列全体をフロートにするので、2 つの新しい配列に基づいて情報を設定する必要があるとしましょう。
if(m[i][1]==52)
a[k][p]=m[i][j]
else if(m[i][1]==61)
b[g][t]=m[i][j]
実際には、52 の場合は 52 のみの配列を表示するには、グループ コードに基づいて表示する必要があります... 61 の場合は、61 の配列のみを表示するには、何らかの並べ替えを行います...いくつかの方法を試しましたが、次のようになります。 -9.2559631e+061" そして、私が言ったように、それを機能させるには符号なし配列が必要だと思います... 編集済み!