因此函数的代码(命名为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;
}
感谢。
答案 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);
}