- 论坛徽章:
- 0
|
是刚开始学awk,所以在如何使用方面还欠缺经验。原代码如下:
BEGIN{FS=" "}
{total=0
for(i=2;i<=NF;++i)
total+=$i
avg=total/(NF-1)
if(avg>=90)
grades="A"
else if(avg>=80)
grades="B"
else if(avg>=70)
grades="C"
else if(avg>=60)
grades="D"
else
grades="Fails"
++class_grades[grades]
student_grades[NR]=avg
print $1,avg,grades
}
END{ for(x=1;x<=NR;++x)
class_avg_total+=student_grades
class_avg=class_avg_total/NR
for(i=1;i<=NR;++i)
if(student_grades>=class_avg)
++up_class_avg
else
++down_class_avg
print ""
print "class_avg:"class_avg;print"up class avg:"up_class_avg;print"down class avg:"down_class_avg
for(x in class_grades)
print x,class_grades
}
总是觉得student_grades[NR]=avg用的太突然了,虽然在这里能理解但还是不会用。
也许像楼上所说的那样吧,得多联系。 |
|