文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>C程序习题-使用指针对数组进行处理[10.3]

C程序习题-使用指针对数组进行处理[10.3]

时间:2010-08-16  来源:chengxiaopeng

    输入10个整数,将其中最小的数与第一个数对换,把最大的的数与最后一个数对换。写三个函数,1.输入10个数,2.进行处理.3.输出10个数。    我们使用两个指针*max,*min都指向数组的第一个元素,然后循环拿数组中的元素和两个指针所指的值进行比较,如果比min指针的数小,则将min指针指向这个地址;如果这个数比max指针所指的数大,则将max指针指向这个地址。然后对最大数,最小数进行交换操作。代码如下:  

#include <stdio.h>
#define N 10
void input_data(int * ,int);
void operate_data(int *,int);
void output_data(int * ,int);
int main(int argc, char *argv[])
{
    int i,arr[N];
    int *p =arr;
    printf("please input 10 number\n");
    input_data(p,N);
    printf("the source number is:\n");
    p = arr;
    output_data(p,N);
    
    p = arr;
    operate_data(p,N);
    printf("the result is :\n");
    output_data(p,N);
    
    system("pause");
    return 0;
}

void input_data(int *arr , int n)
{
     int i;
     for (i = 0 ; i < n ; i++)
     {
         scanf("%d" , arr++);
     }
}

void operate_data(int *arr , int n)
{
     int *max,*min,*p;
     int temp;
     max = arr;
     min = arr;
     for (p = arr + 1 ; p < arr + n ; p++)
     {
         if (*p > *max)
         {
            max = p;
         }
         if (*p < *min)
         {
            min = p;
         }
     }
     
     //begin swap min value.

     p = arr;
     temp = *p;
     *p = *min;
     *min = temp;
     
     //begin swap max value.

     p = arr + n - 1;
     temp = *p;
     *p = *max;
     *max = temp;
     
     
}

void output_data(int *arr , int n)
{
     int i;
     for (i = 0 ; i < n ; i++)
     {
         printf("%d ",*arr++);
     }
     printf("\n");
}


相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载