C语言例题

/*用冒泡排序对10名学生的成绩进行排序*/

#include <stdio.h>

 

int maopao(int a[]);

 

int main()

{

   int a[10];

   int i; 

 

   printf("请输入10个学生的成绩(用空格分开):\n");

   

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

    {

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

    }

 

   maopao(a);

 

   return 0;

}

 

int maopao(int a[])

{

   int i, j, s;

 

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

    {

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

       {

           if(a[j] > a[j+1])

           {

              s= a[j];

              a[j]= a[j+1];

                  a[j+1] = s;

           }

       }

    }

 

   for(i=9; i>=0; i--)  //从大到小输出

    {

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

    }

 

   printf("\n");

 

   return 0;

}

 

 

/*用选择法对10个学生成绩进行排名*/

#include <stdio.h>

 

int xuanze(int a[]);

 

int main()

{

   int a[10];

   int i;

 

   printf("请输入10位同学的成绩:\n");  

 

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

    {

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

    }

  

   xuanze(a);

 

   return 0;

}

 

int xuanze(int a[])

{

   int i, j, s;

 

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

    {

       for(j=i+1; j<10; j++)

       {

           if(a[i] > a[j])

           {

                s = a[i];

             a[i] = a[j];

                a[j] = s;

           }

       }

   }   

 

   for(i=9; i>=0; i--)

    {

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

   } 

 

   printf("\n");

 

   return 0;

}

 

 

/*查找一个数在数组中的排名*/

#include <stdio.h>

 

int main()

{

   int a[10];

    inti, s, flag;  //s为要查找的数,flag用于标记要查找的数的名次

 

   printf("请输入10个数(用空格分开):\n");

   

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

    {

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

    }

 

   printf("请输入要查找的数:");

   scanf("%d", &s);

   maopao(a);

   printf("排好序的数组:\n");

   

   for(i=9; i>=0; i--)

    {

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

       if(a[i] == s)

       {

           flag = 10-i;   //数组从大到小排,总共10个,a[i]个前有i个元素

       }

   }  

 

   printf("\n该数的排名是:%d\n",flag);

 

   return 0;

}

 

int maopao(int a[])     //用冒泡排序对具有10位数据的数组进行排序

 

{

   int i, j, s;  //s用来交换两个数   

 

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

    {

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

       {

           if(a[j] > a[j+1])

           {

              s= a[j];

              a[j]= a[j+1];

                  a[j+1] = s;

           }

       }

    }

 

   return 0;

}

 

 

/*输入一个正整数,求出它是几位数,并逆序输出*/

#include <stdio.h>

 

int nixu(int z);

 

int main ()

{

   int z;//z是输入的整数

 

   printf ("请输入一个正整数:");

   scanf ("%d",&z);   

  

   nixu(z);

  

   return 0;

}

 

int nixu(int z)

{

   int n, p;//z是输入的整数n表示正整数的位数m是逆序后的正整数

   

    n= 0;

    p= z;

   

   while (z > 0)

    {

       z /= 10;

       n++;

    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值