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

本文关键字:整数 输入 数组 何调用 调用 函数 | 更新日期: 2023-09-27 17:51:12

所以函数(Named 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;
  }

谢谢。

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

只需将piMarkArray[piStuNum] = iMark;行移动到while循环中,使用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

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

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

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

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

你在寻找这样的东西吗?

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

您需要声明一个大小为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;
    }
}

总是有多种编码方式,这也不例外。我在这里放的是一个典型的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对象的列表或数组称为AllStudents,你做:

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

或者,如果你不使用类,你的循环可以是:

int[] marks = new int[10]; // Or whatever size it needs to be.
for (int i = 0; i < marks.Length; i++)
{
   marks[i] = GetMark(i);
}