【发布时间】:2013-10-04 02:11:51
【问题描述】:
这个程序应该调用第一个函数,read-series,然后将 while 循环的每次迭代的输入传递给 even-odds 函数,该函数将判断数字是偶数还是奇数,并使 VARSUMODDS=值VARSUMODDS+input 如果它是奇数,或者使 VARPRODUCTEVENS=VARSUMODDS*input 的值。然后它会将它们打印出来。我敢肯定这里有一千个语法错误,所以请粗暴一点。请记住,我刚开始学习这门语言,几天前我只知道 C++ 和 Java,所以不要指望我能理解复杂的答案。谢谢!
#! /bin/bash
TMPDIR=${HOME}/tmpdir
echo "Enter an integer: "
VARSUMODDS=0
VARPRODUCTEVENS=0
function read-series() {
while read numbers ; do
echo "Enter an integer: "
even-odds $numbers
done
echo numbers > $TMPDIR/$$.temp
return 0;
}
function even-odds() {
evenp=$(( $1 % 2 ))
if [ $evenp -eq 0 ] ; then
$VARPRODUCTEVENS=$(($VARPRODUCTEVENS * $1))
return 0;
else
$VARSUMODDS=$(($VARSUMODDS + $1))
return 1;
fi
}
function reduce () {
echo -n "Sum of odds: "
echo VARSUMODDS
echo -n "Product of evens: "
echo VARPRODUCTEVENS
return 0;
}
read-series
【问题讨论】: