一元二次方程求解递归调用调换数组元素

来源:互联网 发布:json转form 编辑:程序博客网 时间:2024/04/28 21:01


    //一元二次方程求解

//    int a,b,c,d;

//    float x1,x2;

//    printf("请输入一元二次方程ax^2+bx+c=0中的a,b,c三个数的值:");

//    scanf("%d %d %d",&a,&b,&c);

//    if(a==0)

//    {

//        printf("a0,式子不是一元二次方程!\n");

//        return -1;

//    }else{

//        d=b*b-4*a*c;

//        if(d<0)

//        {

//            printf("此方程式无解!\n");

//            return -1;

//        }else{

//            x1=(-b+sqrt(d))/(2*a);

//            x2=(-b-sqrt(d))/(2*a);

//        }

//    }

//    printf("方程的俩个解为%3.2f,%3.2f",x1,x2);

    

    //递归调用调换数组元素

//    int a[100]={0};

//    int n=0;

//    int i;

//    printf("please enter the size of array:");

//    scanf("%d",&n);

//    printf("please enter the numbers of array:");

//    for(i=0;i<n;++i)

//    {

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

//    }

//    printf("please enter the size of moving:");

//    scanf("%d",&i);

////    moveArray(a, n,i);

//    moveFun(a, n, i);

//    for(i=0;i<n;++i)

//    {

//        printf("%d ",a[i]);

//    }

void moveArray(int a[],int n,int i)//普通方法

{

   int b[100];

   int j=0;

   int k=i;

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

    {

        b[j]=a[j];

    }

   for(j=0;k<n;++k,++j)

    {

        a[j]=a[k];

    }

   for(k=0;k<i;++k,++j)

    {

        a[j]=b[k];

    }

}

void moveFun(int array[],int n,int m)//递归调用

{

   int *p;

   int 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){

       moveFun(array, n, m);

    }

}


0 0
原创粉丝点击