day08 homework

//1.输⼊入10个整数,将其中最⼩小的数与第⼀一个数对换,把最⼤大的数和最后⼀一个数对换,指针实现
void swap(int *p,int i,int j)
{
    int temp=p[i];
    p[i]=p[j];
    p[j]=temp;
}

void getMaxMin(int *array,int n)
{
    int index_min=0,index_max=0;
    for (int i=0; i<10; i++) {
        if (array[index_min] > array[i]) {
            index_min=i;
        }
        
        if (array[index_max] < array[i]) {
            index_max=i;
        }
    }
    swap(array,0,index_min);
    swap(array, n-1, index_max);
}
void printArray(int *array,int n)
{
    for (int i=0; i<n; i++) {
        printf("%3d",*(array+i));
    }
}

//2.输⼊入10个等长的字符串。⽤用另一个函数对它们排序,然后输出10个已经排好的字符串。

void swapStr(char *p[],int i,int j)
{
    char *temp=p[i];
    p[i]=p[j];
    p[j]=temp;
}
void sortStr(char * array[],int n)
{
    //升序排列
    for (int i=0; i<n-1; i++) {
        for (int j=0; j<n-1-i; j++) {
            if (strcmp(array[j], array[j+1]) > 0) {
                swapStr(array,j, j+1);
            }
        }
    }
}
void printStr(char * array[],int n)
{
    for (int i=0; i<n; i++) {
        printf("%s\n",*(array+i));
    }
}

//3.有⼀一字符串,包含数字与字母,编程去除数字。1、要求在原字符串中操作 2、使⽤用指针处理。
void delNum(char *p)
{
    int i=0,j=0;
    if (p!=NULL) {
        while (p[j]!='\0') {
            if (p[j]>='0' && p[j]<='9') {
                j++;
            }
            else
            {
                p[i]=p[j];
                i++;
                j++;
            }
        }
        p[i]='\0';
    }
}
//4.练习使⽤用指针和地址传递,编写函数swap交换两个浮点数,编写main函数使其实现以下功能:
//1)由⽤用户输⼊入3个数x、y、z的值;
//2)调⽤用函数swap交换3个数中的最⼤大数和最⼩小数;
//3)输出交换后3个数的值。

void SwapFloat(float *x,float *y)
{
    float temp=*x;
    *x=*y;
    *y=temp;
}
int main(int argc, const char * argv[]) {
    //1.
//    int array[10]={32,54,32,84,43,9,43,2,4,19};
//    getMaxMin(array, 10);
//    printArray(array, 10);
    
    //2.
//    char *str[10]={"xiaowang","liming","zhangsan","mazi","anmi","shuqi","gaoyuan","masi","sanxing","zhouliu"};
//    sortStr(str,10);
//    printStr(str, 10);
    
    //3.
//    char str[]="h3j4a5h4a55f33df5fda45gaar";
//    delNum(str);
//    printf("%s",str);
    //4.
    float x,y,z;
    scanf("%f %f %f",&x,&y,&z);
    float max=x > y? (x > z? x:z):(y >z?y:z);
    float min=x < y? (x < z? x:z):(y <z?y:z);
    SwapFloat(&max,&min);
    printf("%f,%f,%f\n",x,y,z);
    return 0;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值