备战蓝桥杯(C语言)

1.数组逆置

//数组逆置
#include<stdio.h> 
#include<stdlib.h>

int main( )
{
   int arr[10]={1,2,3,4,5,6,7,8,9,10};
   int arr_max = sizeof(arr) / sizeof(arr[0]) - 1; //数组个数减去1,也表示数组最大值
   for ( int i = 0;i <=( arr_max/2) ;i++)
   {
       int temp;
       temp = arr[i];
       arr[i] = arr[arr_max-i];
       arr[arr_max-i] = temp;
   }
    printf("逆置后的数组为:\n");
    int m=0;
    for(int i=0;i <= arr_max;i++)
    {
        printf("arr[%d]=",m);
        printf("%d\n",arr[i]);
        m++;
    }
   return 0;

}

2.水仙花数

//水仙花数
//各个数位数的立方和等于这个数
//从1-1000中寻找
#include<stdio.h> 
#include<stdlib.h>

int main( )
{
    printf("1000以内的水仙花数有:");
   for (int i = 100; i < 1000; i++)
   {
       int x,y,z;
       x=i/100;  //求百位数
       y=(i/10)%10;//求十位数
       z=i%10; 
       if (i==x*x*x+y*y*y+z*z*z) //注意赋值号和等号的区别;
       {
           printf("%d  ",i);
       }
   }
   return 0;
}

3.冒泡排序法

//冒泡排序法,将无序数组变为有序数组
#include<stdio.h> 
#include<stdlib.h>


int main( )
{
   int arr[]={1,2,3,5,7,23,46,43,22,546,0,35};
   int n = sizeof(arr)/sizeof(arr[0])-1;
   for( int i=0;i <=n;i++)//外层控制行
   {
       for( int j=0 ;j<=n-i;j++)//内层控制列
       {
           if(arr[j] > arr[j+1])//比较条件满足交换
           {
               int temp;
               temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
           }
       }
   }
   for(int i =0;i<= n;i++)
   {
       printf("%d\n",arr[i]);
   }
   return 0;
}

4.求班级成绩(二维数组)

//学生成绩
#include<stdio.h> 
#include<stdlib.h>


int main( )
{
   //定义一个数组,存储5名学生三门成绩
   //求出每名学生的总成绩、平均成绩
   //求出每门学科的总成绩、平均成绩
   int arr[5][3] ={
       {56,66,89},
       {87,45,56},
       {34,99,76},
       {78,88,89},
       {88,77,77}
   };
/*
    //获取学生成绩(自动输入)
   for (int i = 0; i < 5; i++)
   {
       for (int j = 0; j < 3; j++)
       {
           scanf("%d",&arr[i][j]);
       }
       printf("\n"); 
   }
*/

/* 
   //打印学生成绩
   printf("学生的成绩为:\n");
    for (int i = 0; i < 5; i++)
   {
       for (int j = 0; j < 3; j++)
       {
           printf("%d ",arr[i][j]);
       }
       printf("\n"); 
   }
 */

//求取每名学生的总成绩
int sum_student[3]={0};
for(int i =0;i<5;i++) //每名学生
{
    for(int j=0;j<3;j++)
    {
        sum_student[i] +=arr[i][j];
    }
}

printf("5名学生的总成绩依次为:\n");
for(int i=0;i<5;i++)
{
    printf("%d ",sum_student[i]);
}
printf("\n");
//求出每名学生的平均成绩
printf("5名学生的平均成绩依次为:\n");
for(int i=0;i<3;i++)
{
    printf("%.2f ",(float)sum_student[i]/3);
}
printf("\n");
//求出每学科的总成绩
int subject[3] = {0};
for(int j =0;j<3;j++) //每名学生
{
    for(int i=0;i<5 ;i++)
    {
        subject[j] +=arr[i][j];
    }
}
printf("每门学科的总成绩依次为:\n");
for(int i=0;i<3;i++)
{
    printf("%d ",subject[i]);
}
printf("\n");
//求出每学科的平均成绩
printf("每门学科的平均成绩成绩依次为:\n");
for(int i=0;i<3;i++)
{
    printf("%.2f ",(float)subject[i]/5);
}
printf("\n");
   system("pause"); 
   return 0;
}

5.生成随机数

//产生随机数
#include<stdio.h> 
#include<stdlib.h>
#include<math.h>


int main( )
{
    //time_t timer = timr(NULL);
    //srand ((size_t)timer);
    srand((size_t)time(NULL));  //产生随机种子
    printf("%d\n",rand());

    //若限制随机数范围,对其取余
    for(int i =0 ;i<10;i++) //产生0=9
    {
    printf("%d\n",rand()%10);

    }
}
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值