如何调用函数将多个整数输入数组?

时间:2013-01-09 19:43:51

标签: c#

因此函数的代码(命名为InsertMark)如下所示。你怎么称这个函数将10个人的标记输入一个名为iMarks的数组?

static void InsertMark(int [] piMarkArray, int piStuNum)
{
  int iMark;

  Console.Write("Enter mark for student " + piStuNum + ": ");
  iMark = Convert.ToInt32(Console.ReadLine());

  while (iMark < 0 || iMark > 100)
  {
    Console.Write("Not a percentage. Enter again: ");
    iMark = Convert.ToInt32(Console.ReadLine());
  }

  //update array element with this mark
  piMarkArray[piStuNum] = iMark;
  }

感谢。

6 个答案:

答案 0 :(得分:1)

只需在while循环中移动行piMarkArray[piStuNum] = iMark;,使用index,如果index不小于数组长度,则退出循环。

 int index=0;
 while ((iMark < 0 || iMark > 100) && index < piMarkArray.Length) // exit the loop array is full
 {
    Console.Write("Not a percentage. Enter again: ");
    iMark = Convert.ToInt32(Console.ReadLine());
    piMarkArray[index++] = iMark; // Here marks are set
  }

  //update array element with this mark

答案 1 :(得分:0)

在这里创建一个数组,它将保存10个标记,并在循环中用你的方法填充它:

int[] marks = new int[10];
for(int i = 0; i < marks.Length; i++)
    InsertMark(marks, i);

答案 2 :(得分:0)

在main函数中,你可以有一个代码:

 int iMarks[10];

for(int i = 0; i <10; i++ )
   InsertMark(iMarks, i)

答案 3 :(得分:0)

你正在寻找这样的东西吗?

for(int i=0; i<10; i++)
{
    InsertMark(iMarks, i);
}

答案 4 :(得分:0)

你需要声明一个大小为10的数组:int[] iMarks = new int[10],然后在for循环中将数组和计数器值传递给函数。

        int[] iMarks = new int[10];
        for(int x = 0; x < 10; x++)
            InsertMark(iMarks, x);

以下是完整的课堂/工作范例:

static void Main(string[] args)
    {
        int[] iMarks = new int[10];
        for(int x = 0; x < 10; x++)
            InsertMark(iMarks, x);

        Console.Read();

    }

    static void InsertMark(int[] piMarkArray, int piStuNum)
    {
        int iMark;

        Console.Write("Enter mark for student " + piStuNum + ": ");
        iMark = Convert.ToInt32(Console.ReadLine());

        while(iMark < 0 || iMark > 100)
        {
            Console.Write("Not a percentage. Enter again: ");
            iMark = Convert.ToInt32(Console.ReadLine());
        }

        //update array element with this mark
        piMarkArray[piStuNum] = iMark;
    }
}

答案 5 :(得分:0)

总有多种方法可以编写任何代码,这也不例外。我在这里放的是一个例子的惯用C#来做到这一点。我能想到的至少有两种变体会更好,但这与最初的想法保持最接近。

首先,基本的Student类:

class Student
{
   public int ID;
   public int Mark;
}

然后,提示标记的功能

int GetMark(int studentID)
{
    Console.Write("Enter mark for student " + studentID + ": ");
    int mark = Convert.ToInt32(Console.ReadLine());

    while (iMark < 0 || iMark > 100)
    {
        Console.Write("Not a percentage. Enter again: ");
        iMark = Convert.ToInt32(Console.ReadLine());
    }
    return mark;
}

最后,从您的主程序中,您有一个名为Student的{​​{1}}个对象的列表或数组,您可以这样做:

AllStudents

或者,如果您不使用类,则循环可以是:

foreach (Student student in AllStudents)
{
    student.Mark = GetMark(student.ID); 
}