函数的简单练习

来源:互联网 发布:知乎周刊在哪看 编辑:程序博客网 时间:2024/05/16 12:35
  //选择排序

//    //for (int i=0; i<length-1; i++) {

//     //   for (int j=i+1; j<length; j++) {

////            if (carray[i] > carray[j]) {

////                tmp = carray[i];

////                carray[i] = carray[j];

////                carray[j] = tmp;

////            }

//冒泡排序

//            for(int i=0;i<length-1;i++) {

//                for (int j=0;j<length-1-i; j++) {

//                    //比较

//                    if (carray[j] > carray[j+1]) {

//                    //交换

//                        tmp = carray[j];

//                        carray[j] = carray[j+1];

//                        carray[j+1] = tmp;

//                    }

//                }

//            }


交换两个数

void swap(int *a,int *b)

{

    int tmp;

    tmp = *a;

    *a = *b;

    *b = tmp;

}


int sort(int carray[],int length)

{

    //    int index[length];     //索引排序

    //    strcopy(index[length],carray);

    int tmp = 0;

    

    //输入参数的合法检查

    if (carray == NULL) {

        return 2;    //2代表一种错误

    }

    

    if (length <= 0) {

        return -1;    //-1代表一种错误

    }

    //选择排序

    //for (int i=0; i<length-1; i++) {

    //   for (int j=i+1; j<length; j++) {

    //            if (carray[i] > carray[j]) {

    //                tmp = carray[i];

    //                carray[i] = carray[j];

    //                carray[j] = tmp;

    //            }

    //冒泡排序

    for(int i=0;i<length-1;i++) {

        for (int j=0;j<length-1-i; j++) {

            //比较

            if (carray[j] > carray[j+1]) {

                //交换

                tmp = carray[j];

                carray[j] = carray[j+1];

                carray[j+1] = tmp;

            }

        }

    }

    // }

    //}

1. 在屏幕上输出以下图形:

//  *

// ***

//*****

void sanjiao(int line)

{

    int i,j,x;

    for(i=1;i<=line;i++){

        for (j=0; j<line-i; j++) {     

            printf(" ");

        }

        for (x=1; x<=2*i-1; x++) {

            printf("*");

        }

        printf("\n");

    }

}

2. 在屏幕上输出以下图形

       0    1   1   1   1

      -1   0   1   1   1

      -1  -1   0   1   1

      -1  -1  -1   0   1

      -1  -1  -1  -1   0

int draw(int n)

{

   if(n<=0) return -1;

     for(int i=0;i<n;i++){

        for(int j=0;j<n;j++){

           if(j==i) printf(“ 0 ”);

           else if (j<i)printf(“-1 ”);

           else printf(“ 1 ”);

        }

        printf(“\n”);

    }

    return 0;


  1. 3.在屏幕上输出以下图形
                               *
  2.                           ***
  3.                          *****
  4.                           ***
  5.                            *

int draw(int nside)

{

if(nside<=0) return -1;

int len = nside*2+1;

int m = len/2;

for(int i=0;i<len;i++){

for(int j=0;j<len;j++) printf(“%s”,(j>=m && j<len-m)?”*”:” ”);

//for(int j=0;j<len;j++) printf(“%s”,(j==m || j==len-m-1)?”*”:” ”);

printf(“\n”);

m=(i<len/2)? (- -m):(++m);

//m=(i<nside)?(--m):(++m);

}

return 0;

}


  1. 4.任意给定一个位数不超过 9 的整数将其所有位的数值加在一起并输出。
  2. int sum(int num){
  3. int i = 0;
  4. int result = 0;
  5. // num = 123456789;
  6. for(i=1;num!=0;i++){
  7.   result += num%10;
  8. num /= 10;
  9. }
  10.   return result;
  11. }

  1. 任意给定一个不超过 9 位的整数,将其高低位翻转,
  2. 例如给定 12345 变成 54321, 12320 变成 2321。 
  3. int transfer(int number)
  4. {
  5.   int result = 0;
  6.   int bits = 0;
  7.   int num = number;
  8.   int base = 1;

  9.   for(;num!=0;){
  10.     bits++;
  11.     num /= 10;
  12.   }
  13.   for(num=number;num!=0;num/=10){
  14.       base = 1;
  15.       bits--;
  16.       for(int j=0;j<bits;j++) base*=10;
  17.       result += num%10*base;
  18.   }
  19.     
  20.   return result;
  21. }
0 0