H_C_4 1
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <time.h>
struct Year
{
int year;
int month;
int day;
};
bool leapYear(int aYear);
bool leapYear(int aYear)
{
bool s = false;
if (( aYear % 4 == 0 && aYear % 100 !=0)||(aYear % 400 == 0))
{
s = true;
}
return s;
}
int numOfMonth(int year,int mon);
int numOfMonth(int year,int mon)
{
int sum = 0;
switch (mon)
{
case 1:
case 3:
case 12:
case 5:
case 7:
case 8:
case 10:
{
sum = 31;
break;
}
case 2:
{
if (leapYear(year))
{
sum = 29;
}
else
{
sum = 28;
}
break;
}
default:
{
sum = 30;
break;
}
}
return sum;
}
/*
遍历输出数组中的元素
*/
void print(int a[],int n);
void print(int a[],int n)
{
for (int i = 0; i<n; i++)
{
printf("%d ",a[i]);
}
}
void revort(int a[],int n);
void revort(int a[],int n)
{
int tmp;
for (int i = 0; i < n / 2; i++)
{
tmp = a[i];
a[i] = a[n-1-i];
a[n-1-i] = tmp;
}
}
void pawpaw(int a[],int n);
void pawpaw(int a[],int n)
{
for (int i = 0; i < n - 1; i++)
{
int tmp;
for (int j = 0; j < n-1-i; j++)
{
if (a[j]>a[j+1])
{
tmp =a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
}
}
}
void insertNum(int a[],int len,int num);
void insertNum(int a[],int len,int num)
{
int k = 0;
int n = len - 1;// n代表没添加num之前的长度
int i;
for (i = 0; i < n; i++)
{
if (num > a[i])
{
continue;
}
// 找到要插入的位置
k = i;
printf("k = %d",k);
break;
}
// 后移
for (int j = n; j > k; j--)
{
a[j] = a[j-1];
}
// 赋值
a[k] = num;
}
void chiose(int a[],int n);
void insert(int a[],int n);
int main(int argc, const char * argv[])
{
// 1、
int a[4] = {8,6,4,1};
revort(a, 4);
print(a, 4);
// 2、
struct Year y = {2013,3,1};
int allDay = 0;
for (int i = 1; i < y.month; i++)
{
allDay += numOfMonth(y.year, y.month);
}
allDay+=y.day;
printf("allDay = %d",allDay);
// 3、
char cArr[] = {'r','e','p','u','t','a','t','i','o','n'};
for (int i = 0; i < 10 - 1; i++)
{
int tmp;
for (int j = 0; j < 10-1-i; j++)
{
if (cArr[j]>cArr[j+1])
{
tmp =cArr[j];
cArr[j] = cArr[j+1];
cArr[j+1] = tmp;
}
}
}
for (int i = 0; i<10; i++)
{
printf("%c ",cArr[i]);
}
//
srand((unsigned)time(NULL));
int rodmArr[20] = {0};
for (int i = 0; i<20; i++)
{
int r = rand() % (50 + 1 - 10) + 10;
rodmArr[i] = r;
}
printf("\n");
print(rodmArr, 20);
// 冒泡排序
pawpaw(rodmArr, 20);
printf("\n");
print(rodmArr, 20);
printf("\n");
int arr[5] = {3,1,5,7,0};
insertNum(arr, 5, 4);
printf("\n");
print(arr, 5);
printf("\n");
int ary[] = {3,5,4,2};
//chiose(ary, 4);
insert(ary, 4);
print(ary, 4);
return 0;
}
// 选择排序
void chiose(int a[],int n)
{
int i,j,k,tmp;
for (i = 0; i < n; i++)
{
k = i;
for (j = i+1; j < n; j++)
{
if(a[j] < a[i])
{
k = j; // k始终代表最小的元素的下标
if (k!=i)
{
tmp = a[i];
a[i] = a[k];
a[k] = tmp;
}
}
}
}
}
void insert(int a[],int n)
{
int i,j,tmp;
for (i = 1; i<n; i++)
{
tmp = a[i];
j = i - 1;
while (tmp < a[j] && j>=0)
{
a[j+1] = a[j];
j--;
}
a[j+1] = tmp;
}
}
浙公网安备 33010602011771号