#!/bin/bash
#【程序33】
#题目:学习gotoxy()与clrscr()函数
#1.程序分析:
#2.程序源代码:
N=100
for e in $( seq 0 $(( N - 1 )) );do
a[$e]=$e
done
#is prime?
for i in $( seq 2 `echo "sqrt($N)" | bc` );do
for j in $( seq $(( i + 1 )) $(( N - 1)) );do
if [ ${a[$i]} -ne 0 -a ${a[$j]} -ne 0 ];then
if [ $((${a[$j]} % ${a[$i]})) -eq 0 ];then
a[$j]=0
fi
fi
done
done
#print prime
for i in `seq 2 $((N-1))`;do
if [ ${a[$i]} -ne 0 ];then
echo -n "${a[$i]} "
fi
done
#!/bin/bash
N=10
a=()
for i in {0..9};do
read -p "please input the ${i}th number "
a[$i]=$REPLY
done
for x in {0..9};do
echo ${a[$x]}
done
#sort ten num
for ii in {0..9};do
min=$ii
for jj in $( $(( ii + 1 )) $((N-1)) );do
if [ ${a[$min]} -gt ${a[$jj]} ];then
min=$jj
fi
done
tmp=${a[$ii]}
a[$ii]=${a[$min]}
a[$min]=$tmp
done
echo "after sorted"
for m in {0..9};do
echo -n "${a[$m]} "
done
echo
#!/bin/bash
#题目:求一个3*3矩阵对角线元素之和
#1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出。
#2.程序源代码:
sum=0
for i in {0..2};do
for j in {0..2};do
read input
a[(($i*3 + $j))]=$input
done
done
for i in {0..2};do
(( sum+=${a[((i*3+i))]} ))
done
echo "sum = $sum"
#!/bin/bash
#【程序39】
#题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
#1. 程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后
# 此元素之后的数,依次后移一个位置。
#2.程序源代码:
a=(1 4 6 9 13 16 19 28 40 100)
for i in $(seq 0 $((${#a[*]} - 1)));do
echo -n "${a[$i]} "
done
read -p "insert a new number:" number
end=${a[9]}
if [ $number -lt $end ];then
for i in {0..9};do
if [ ${a[$i]} -gt $number ];then
for j in $(seq 10 -1 $((i+1)) );do
a[$j]=${a[$j-1]}
done
a[$i]=$number
break
fi
done
fi
for i in {0..11}
do
echo -n "${a[$i]} "
done
echo
#!/bin/bash
#【程序40】
#题目:将一个数组逆序输出。
#1.程序分析:用第一个与最后一个交换。
#2.程序源代码:
a=(9 6 5 4 1)
for i in $(seq 0 $((${#a[*]} - 1)) );do
echo -n "${a[$i]} "
done
echo
len=${#a[*]}/2
for i in $( seq 0 $(($len)) );do
tmp=${a[$i]}
a[$i]=${a[$((${#a[*]} - 1 - $i))]}
a[$((${#a[*]} - 1 - $i))]=$tmp
done
for i in $(seq 0 $((${#a[*]} - 1)) );do
echo -n "${a[$i]} "
done
echo
阅读(655) | 评论(0) | 转发(1) |