首页 > 用户发贴区 > 编程问题提问区 > 高手帮忙调式一下
2008
01-25

input(int number)
int number[10];
{ int i;
 for(i=0;i<9;i++)
  scanf(“%d,”,&number[i]);
  scanf(“%d”,&number[9]);
}
max_min(int 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<arr_end;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(int array)
int array[10];
{  int *p;
 for(p=array;p<array+9;p++)
  printf(“%d,”,*p);
 printf(“%d\n”,array[9]);
}
#include<stdio.h>
main()
{
    int number[10];
    input(number);
 max_min(number);
 output(number);
}
  题目是           输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组


高手帮忙调式一下》有 3 条评论

  1. SimonSworD 说:

    练函数和指针?… 貌似这程序很短呃..

    #include<iostream>
    int num[10];
    int main(){
     for(int i=1;i<=10;i++)
      cin >> num[i];
     
     int max = -1;
     int min = 999999;
     int lmax,lmin;
     for(int i=1;i<=10;i++)
     {
      if(num[i]>max)
      {
       max = num[i];
       lmax = i;
      }
      if(num[i]<min)
      {
       min = num[i];
       lmin = i;
      }
     }
     int temp;
     temp = num[1]; num[1] = max; num[lmax] = temp;
     temp = num[10]; num[10] = min; num[lmin] = temp;
     
     for(int i=1;i<=10;i++)
      cout << num[i] << ” “;
     cout << endl;
     system(“pause”);
     return 0;
    }

  2. wfnh 说:

    我的代码:

    /* 标准文档模板 */

    #include “Stdio.h”
    #include “Conio.h”
    #define size 5
    void input(int arr1[],int x);
    void swap(int arr[]);
    void output(int arr2[],int y);
    int main(void)
    {
     /* 此处添加你自己的代码 */
     int arr[size];
     int max,min,tmp;
     input(arr,size);
     swap(arr);
     output(arr,size);
     getch();

    }
    void input(int arr1[],int x)
    {
        int i;
        printf(“please input size data:”);
        for(i=0;i<x;i++)
            scanf(“%d”,arr1+i);

    }
    void swap(int arr[])
    {
        int i,minpos=0,maxpos=0,temp=0;
        for(i=1;i<=4;i++)
        {
            if(*(arr+maxpos)<*(arr+i))
                maxpos=i;
            else
                if(*(arr+minpos)>*(arr+i))
                    minpos=i;
         }
         temp=*(arr+maxpos);
         *(arr+maxpos)=*(arr+4);
         *(arr+4)=temp;
         temp=*arr;
         *arr=*(arr+minpos);
         *(arr+minpos)=temp;
    }
    void output(int arr2[],int y)
    {
        int i;
        for(i=0;i<y;i++)
        printf(“%3d”,*(arr2+i));
    }
       
    参考一下!

留下一个回复