LOGO
首页 小说列表 排行榜 搜索

    C语言教程-第66页

  • 第1页
  • 上一页
  • 下一页

    温馨提醒:系统正在全面升级。您可以访问最新站点。谢谢!

      int *pointer1,*pointer2,*pointer3;

      printf("please input 3 number:n1,n2,n3:");

      scanf("%d,%d,%d",&n1,&n2,&n3);

      pointer1=&n1;

      pointer2=&n2;

      pointer3=&n3;

      if(n1>n2) swap(pointer1,pointer2);

      if(n1>n3) swap(pointer1,pointer3);

      if(n2>n3) swap(pointer2,pointer3);

      printf("the sorted numbers are:%d,%d,%d\n",n1,n2,n3);

      }

      swap(p1,p2)

      int *p1,*p2;

      {int p;

      p=*p1;*p1=*p2;*p2=p;

      }

      ==============================================================

      【程序67】

      题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

      1.程序分析:谭浩强的书中答案有问题。      

      2.程序源代码:

      main()

      {

      int number[10];

      input(number);

      max_min(number);

      output(number);

      }

      input(number)

      int number[10];

      {int i;

      for(i=0;i<9;i++)

       scanf("%d,",&number[i]);

       scanf("%d",&number[9]);

      }

      max_min(array)

      int array[10];

      {int *max,*min,k,l;

      int *p,*arr_end;

      arr_end=array+10;

      max=min=array;

      for(p=array+1;p

       if(*p>*max) max=p;

       else if(*p<*min) min=p;

       k=*max;

       l=*min;

       *p=array[0];array[0]=l;l=*p;

       *p=array[9];array[9]=k;k=*p;

       return;

      }

      output(array)

      int array[10];

      { int *p;

      for(p=array;p

       printf("%d,",*p);

      printf("%d\n",array[9]);

      }

      ==============================================================

      【程序68】

      题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

      1.程序分析:

      2.程序源代码:

      main()

      {

      int number[20],n,m,i;

      printf("the total numbers is:");

      scanf("%d",&n);

      printf("back m:");

      scanf("%d",&m);

      for(i=0;i

       scanf("%d,",&number[i]);

      scanf("%d",&number[n-1]);

      move(number,n,m);

      for(i=0;i

       printf("%d,",number[i]);

      printf("%d",number[n-1]);

      }

      move(array,n,m)

      int n,m,array[20];

      {

      int *p,array_end;

      array_end=*(array+n-1);

      for(p=array+n-1;p>array;p--)

       *p=*(p-1);

       *array=array_end;

       m--;

       if(m>0) move(array,n,m);

      }

      ==============================================================

      【程序69】

      题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出

         圈子,问最后留下的是原来第几号的那位。

      1. 程序分析:

      2.程序源代码:

      #define nmax 50

      main()

      {

      int i,k,m,n,num[nmax],*p;

      printf("please input the total of numbers:");

      scanf("%d",&n);

      p=num;

  • 第1页
  • 上一页
  • 下一页