求C语言上机实验题答案!!!

[复制链接]
查看11 | 回复1 | 2011-5-5 11:32:59 | 显示全部楼层 |阅读模式
1.编写函数,将字符串中ASCII码最小的字符放在第一
个字符位置,其余字符依次往后移。

要求实现下列函数:
voidfunc(char*str);
2.请编写一个函数func,通过略去非数字字符,将字符串s转换为
一个整数(不得调用C语言提供的将字符串转换为整数的函数)。

要求实现函数:
longfunc(char*s);
/*s是一个数字字符串的地址,
函数返回值为由s含有的数字字符转换得到的数(包含正负数情况)
*/
3.请编写一个函数min3adj(ints[],intn),数组s中有n(0)个整数,
返回在s中相邻三个数的和中的最小值。

要求实现函数:
intmin3adj(ints[],intn);
/*数组s含n(0)个整数,
返回在s中相邻三个数的和中的最小值。
*/
回复

使用道具 举报

千问 | 2011-5-5 11:32:59 | 显示全部楼层
//1.将字符串中ASCII码最小的字符放在第一个字符位置,其余字符依次往后移
voidfunc(char*str)
{
        intloc=0,cloc=0;
        charc;

        c=*str;

        while(*(strloc)!=\'\\0\')
        {
                if(c*(strloc))
                {
                        c=*(strloc);
                        cloc=loc;
                }
                loc;
        }
       
        while(cloc!=0)//移到最前
        {
                //左移
                loc=0;
                while(*(strloc1)!=\'\\0\')
                {
                        c=*(strloc);
                        *(strloc)=*(strloc1);
                        *(strloc1)=c;
                        loc;
                }
                cloc--;
        }
       
}
//2.略去非数字字符,将字符串s转换为一个整数
longfunc(char*s);
{
       
        intloc=0;
        charc;
        longret=0L;

        ......
        ......
        //假设现在已经略去非数字字符,并取得-,放于*str
        while(*(strloc)!=\'\\0\')
        {
                ret=ret*10(*(strloc)-\'0\');
                loc;
        }
        if(c==\'-\')
                ret*=-1;
        returnret;
}
//3.返回在s中相邻三个数的和中的最小值
intmin3adj(ints[],intn)
{
        inti,j;
        longsum;

        sum=s[0]s[1]s[2];
        for(i=0;in-2;i)
        {
                if(ss[i1]s[i2]sum)
                        sum=ss[i1]s[i2];
        }
        returnsum;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行