作业问题,请帮忙! [英] homework question,help please!

查看:72
本文介绍了作业问题,请帮忙!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嗨伙计..

i不能竞争这个节目,为什么?

Q是:写一个程序,取5个学生的分数并显示平均值,我'我完成了这一部分:

..............

课程计划
{
struct st1
{


int i;
双倍金额,平均;
string st;
int n;
console.write(你有几个学生?);
st = console.readline();
n = convert.ToInt32(st);
st1 [] s = new st1 [n];
for(i = 0; i< n; i ++)>
{
console.write(student);
console.writeline(i + 1);
console.write(输入学生ID:);
st = console.readline();
s(i).ID = convert.ToInt32(st);
console.write(输入学生姓名:);
s(i).name = console.readline();
console.write(输入student score:);
st = console.readline();
s(i).number = convert.ToDouble(st);
}
sum = 0;
for(i = 0; i< n; i ++)>
sum + = a(i).score;
avg = sum / n;
console.write(average:);
console.writeline(avg);
console.readline();
}
.............



和Q的另一部分说完了这一切之后学生的信息根据从最大到最小的分数。

你可以帮助我完成这个,请... .. div class =h2_lin>解决方案

有一个(相对)简单的方法:你可以使用内置的Array.Sort方法。



创建一个Comparer方法:

  private   static   int  CompareEm(st1 s1,st1 s2)
{
return s2.number - s1.number;
}

然后:

 Array.Sort(st1,CompareEm); 



BTW:使用非常短的变量名称是个坏主意,特别是使用与您声明的类相同的变量名称它作为。使用更长的名称:它使你的代码更具可读性,Intellisense帮助你输入它们,所以它真的如此快,如果不是更快!


这是OriginalGriff固体解决方案的一个细微变化,使用Lambda表示法,对于就地降序对象排序为Array [Object]:

 Array.Sort(学生,(student1,student2)=> student2.Score  -  student1.Score); 


hi guys..
i cant compelete this program, why??
the Q is:write a program that take 5 students's score and display the average,i've done this part:
..............

class program
{
struct st1
{
.
.
int i;
double sum,avg;
string st;
int n;
console.write("How many students do you have?");
st=console.readline();
n=convert.ToInt32(st);
st1[] s=new st1[n];
for(i=0;i<n;i++)>
{
console.write("student ");
console.writeline(i+1);
console.write("enter student ID:");
st=console.readline();
s(i).ID=convert.ToInt32(st);
console.write("enter student name:");
s(i).name=console.readline();
console.write("enter student score:");
st=console.readline();
s(i).number=convert.ToDouble(st);
}
sum=0;
for(i=0;i<n;i++)>
sum+=a(i).score;
avg=sum/n;
console.write("average:");
console.writeline(avg);
console.readline();
}
.............


and the other part of the Q says after all this sort the informations of the students according to scores from greatest to smallest.
can you help me to compelete this ,please..

解决方案

There is a (relatively) simple way to do it: you can use the built in Array.Sort method.

Create a Comparer method:

private static int CompareEm(st1 s1, st1 s2)
    {
    return s2.number - s1.number;
    }

And then:

Array.Sort(st1, CompareEm);


BTW: It's a poor idea to use very short variable names, and especially poor to use a variable name that is the same as the class you have declared it as. Use longer names: it makes your code a lot more readable, and Intellisense helps you type them so it really is as fast if not faster!


Here's a slight variation of OriginalGriff's solid solution, using Lambda notation, for an in-place-descending object sort of an Array[Object]:

Array.Sort(Students, (student1, student2) => student2.Score - student1.Score);


这篇关于作业问题,请帮忙!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆