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);
}
}