0
我想代碼下面是什麼做的是分析與同類行的文件,以在awk中計算GPA?
CSC3320,SYSTEM LEVEL PROGRAMMING,3,1,A
CSC3210,ASSEMBLY LEVEL PROGRAMMING,3,1,B
,並計算基於關閉的等級*學時/的學分總和公式總和的GPA。我試圖通過分別計算分子和分母,然後除以二和打印輸出來做到這一點。
calculate(){
awk -F, '
numerator=0;
denominator=0;
if($4==1) {
if($5=="A"){
numerator+=(4*$3);
denominator+=$3
} else if ($5 == "B"){
numerator+=(3*$3);
denominator+=$3
} else if ($5 == "C"){
numerator+=(2*$3);
denominator+=$3
} else {
}
}
GPA = numerator/denominator
printf "Your GPA is %d\n" GPA
'my_course.txt
}
我得到的是一個錯誤信息說
AWK:4號線:在語法錯誤或附近,如果
AWK:18線:達到或接近printf的語法錯誤
我的書沒有詳細說明if if else語句。那麼,我如何輸入這些信息到底出了什麼問題?
您不能將變量在awk中的{{}}塊之外展開。你也不需要在awk中初始化變量。所以'awk'{calc and print}'會讓你更接近你。祝你好運。 – shellter
可能重複[Awk打印整數而不是浮點](http://stackoverflow.com/questions/15693976/awk-printing-integer-instead-of-floating-point) –