2

编辑:我正在尝试和搜索,但没有找到如何在 (j==3) 浮动时仅转换部分,因为我需要评估(等级或 idk 确切的词)从 2 到 6 - 它可以是 3,5 ......所以我需要浮动。好的,检查我的代码:

#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; 
  }

假设我们将使整个数组浮动,所以我需要根据两个新数组设置信息,因为它说:

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" 我认为正如我所说我需要无符号数组来工作......编辑!

4

2 回答 2

0

不要使用从任意数字索引的数组来存储不同的数据项。你要做的就是让每个人都头疼。

struct Student
{
    unsigned int fak;
    unsigned int speciality;
    unsigned int group;
    float grade;
}

Student students[25];
students[20].group = 1.7f;

在这个问题上,也请停止使用幻数(如果数字 25 出现两次,它应该是一个常数)。

const int studentCount = 25;
Student students[studentCount];

还有其他事情,但是请开始编写代码,命名所有内容,而不是要求我们、与您一起工作的人或下周您未来的自己试图弄清楚 j==3 代表什么......

于 2014-05-21T16:17:41.317 回答
0

你不能。数组具有相同类型的所有条目。

不过,有几种方法可以解决它。首先是制作整个数组 type float。另一种是使用类似Boost Any 类的东西。

于 2012-11-26T10:00:36.867 回答