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

全部博文(171)

文章存档

2012年(2)

2011年(70)

2010年(9)

2009年(14)

2008年(76)

分类: Python/Ruby

2011-08-07 21:41:38

#!/bin/bash
#【程序66】
#题目:输入3个数a,b,c,按大小顺序输出。   
#1.程序分析:利用指针方法。
#2.程序源代码:

declare -i g1 g2 g3
function main(){
    read -p "input 3 numbers: " n1 n2 n3
    
    function swap(){
       g1=$1
       g2=$2
       g3=$3

       if [ $g1 -gt $g2 ];then
           tmp=$g1
           g1=$g2
           g2=$tmp
       fi

       if [ $g1 -gt $g3 ];then
           tmp=$g1
           g1=$g3
           g3=$tmp
       fi

       if [ $g2 -gt $g3 ];then
           tmp=$g2
           g2=$g3
           g3=$tmp
       fi
    }
    swap $n1 $n2 $n3
    echo "$g1 $g2 $g3"

}

main

#!/bin/bash
#题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。
#1.程序分析:
#2.程序源代码:

a=()
function inp(){
    for i in {0..8};do
        read a[$i]
    done
}

min=0
max=0
function max_min(){
    for i in $(seq 1 $((${#a[*]}-1)) );do
        p=$i
        if [ ${a[$p]} -gt ${a[$max]} ];then max=$p; fi
        if [ ${a[$p]} -lt ${a[$min]} ];then min=$p; fi
    done

    l=max
    k=min

    tmp=${a[0]}
    a[0]=${a[$l]}
    a[$l]=$tmp

    tmp=${a[8]}
    a[8]=${a[$k]}
    a[$k]=$tmp
}

function main(){
    inp
    for i in {0..8};do
        echo -n "${a[$i]} "
    done
    echo

    max_min

    for i in {0..8};do
        echo -n "${a[$i]} "
    done
    echo
}

main

#!/bin/bash
#【程序68】
#题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数
#1.程序分析:
#2.程序源代码:

a=(1 2 3 4 5 6 7 8 9 0)
read -p "back m" m

b=()
#get last m numbers
for i in $(seq $(($m-1)) -1 0);do
    b[$(($m -1 - $i))]=${a[$((${#a[*]}-$i-1))]}
done

#shift first numbers
for i in $(seq $((${#a[*]} - 1)) -1 $m );do
   a[$i]=${a[$(($i - $m))]}
done

#assign last m numbers to first m numbers.
for i in $(seq 0 $(($m - 1)) );do
    a[$i]=${b[$i]}
done

echo "${a[@]}"


#!/bin/bash
#程序69】
#题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出
#   圈子,问最后留下的是原来第几号的那位。
#1. 程序分析:
#2.程序源代码:

function main(){
    read -p "Please input the total of numbers: " n
    num=()
    for i in $(seq 0 $(($n-1)) );do
        num[$i]=$(($i+1))
    done

    i=0
    k=0
    m=0

    while (( m < n - 1));do
        if [ ${num[$i]} -ne 0 ];then (( k++ ));fi
        if [ $k -eq 3 ];then
            num[$i]=0
            k=0
            (( m++ ))
        fi
        (( i++ ))
        if [ $i -eq $n ];then i=0;fi
    done

    i=0
    while (( ${num[$i]} == 0 ));do (( i++ ));done
    echo "${num[$i]}"
}

main

#!/bin/bash
#题目:写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。   
#1.程序分析:
#2.程序源代码
#就这样吧

function main(){
    local string="$1"
    echo "length of input string is ${#string}"
}

main $1

阅读(921) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~