Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1723577
  • 博文数量: 171
  • 博客积分: 11553
  • 博客等级: 上将
  • 技术积分: 3986
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-25 20:28
文章分类

全部博文(171)

文章存档

2012年(2)

2011年(70)

2010年(9)

2009年(14)

2008年(76)

分类: Python/Ruby

2011-08-06 20:17:46

#!/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) |
给主人留下些什么吧!~~