学习要点:
数组
数组定义的语法
数据类型 数组名[长度]={值1,值2,值3,值4.....}
数组是存放一组相同类型数据的容器,我们要想使用数组当中的某个数据,可以使用下标的形式进行取值,数组的下标是从0开始。数组内成员个数要小于等于定义数组时的数值,否则将会造成数组越界。
int array[10]={1,2,3,4,5,6,7,8,9,0};
char arrary[4]="love"; 同等于 char array[4]={'l','o','v','e'};
常用的排序算法:
选择排序
插入排序
//
// main.c
// Lesson_C_04
//
// Created by lifewahaha on 15/3/24.
// Copyright (c) 2015年 lifewahaha. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void SortRandomArray();
#define SIZE 10
int main(int argc, char *argv[])
{
/*
int a[SIZE] = {0},i= 0;
for(i = 0; i < SIZE; i++){
a[i] = i+10;
printf("a[%d] = %d\n", i, a[i]);
}
/反向输出
for (i=0; i<SIZE; i++) {
printf("%d \n",a[SIZE-i-1]);
}
/求和操作
int sum;
for (i=0; i<SIZE; i++) {
sum+=a[i];
}
printf("和为:%d\n",sum);
int resoult;
数组连减
for (i=0; i<SIZE; i++) {
if (i==0) {
a[i]=a[i];
}else{
a[i]=-a[i];
}
resoult+=a[i];
}
printf("连减结果为:%d",resoult);
int array[20];
int arraysum=0;
for (int j=0; j<20; j++) {
array[j]=arc4random()%41+10;
arraysum+=array[j];
}
for (int j=0; j<19; j++) {
for (int k=0; k<19-j; k++) {
if (array[k]>array[k+1]) {
int temp=array[k];
array[k]=array[k+1];
array[k+1]=temp;
}
}
}
printf("随机数最大值为:%d,最小值为:%d\n,和为:%d,平均值为:%d",array[19],array[0],arraysum,arraysum/20);
int index=0;
int array5[5];
int array6[5];
printf("请输入第一个数组--5个值逗号隔开:\n");
// while (index<5) {
// scanf("%d",&array5[index]);
// index++;
// }
scanf("%d,%d,%d,%d,%d",&array5[0],&array5[1],&array5[2],&array5[3],&array5[4]);
printf("请输入第二个数组--5个值逗号隔开:\n");
scanf("%d,%d,%d,%d,%d",&array6[0],&array6[1],&array6[2],&array6[3],&array6[4]);
for (index=0; index<4; index++) {
for (int index1=0; index1<4-index; index1++) {
if (array5[index1]>array5[index1+1]) {
int temp=array5[index1];
array5[index1]=array5[index1+1];
array5[index1+1]=temp;
}
}
}
for (index=0; index<4; index++) {
for (int index1=0; index1<4-index; index1++) {
if (array6[index1]>array6[index1+1]) {
int temp=array6[index1];
array6[index1]=array6[index1+1];
array6[index1+1]=temp;
}
}
}
for (int index=0; index<5; index++) {
printf("%d ",array5[index]);
}
printf("\n");
for (int index=0; index<5; index++) {
printf("%d ",array6[index]);
}
int array7[10];
for (int index=0; index<10; index++) {
if (index<5) {
array7[index]=array5[index];
}else{
array7[index]=array6[index-5];
}
}
for (index=0; index<9; index++) {
for (int index1=0; index1<9-index; index1++) {
if (array7[index1]>array7[index1+1]) {
int temp=array7[index1];
array7[index1]=array7[index1+1];
array7[index1+1]=temp;
}
}
}
printf("\n");
for (int index=0; index<10; index++) {
printf("%d ",array7[index]);
}
*/
//
// int daylist[12]={31,28,31,30,31,30,31,31,30,31,30,31};
// int year,month,day,allday=0;
// scanf("%d-%d-%d",&year,&month,&day);
// if ((year%4==0&&year%100!=0)||year%400==0) {
// daylist[1]=29;
// }
//
// for (int mindex =0; mindex<month-1; mindex++) {
// allday+=daylist[mindex];
// }
// allday+=day;
// printf("%d年-%d月-%d日 是第%d天\n",year,month,day,allday);
/* 9.
int a[]={5,-9,32,77,64,-24,14,0,21,45};
int len=sizeof(a)/sizeof(int);
int min=a[0],minindex=0,max=0,maxindex=0;
for (int i=0; i<len ;i++) {
if (min>a[i]) {
min=a[i];
minindex=i;
}
if (max<a[i]) {
max=a[i];
maxindex=i;
}
}
printf("最大值为:%d,最小值为:%d,最大值的位置为:%d,最小值的位置为:%d\r",max,min,maxindex+1,minindex+1);
*/
/* 10.
char result[50]={0};
char str1[]="Lanou ";
char str2[]="23_class ";
char str3[]="is niu best!";
strcat(result, str1);
strcat(result, str2);
strcat(result, str3);
printf("%s\r",result);
*/
// char string[11], str1[11];
// int i;
// for(i = 0; i < 11; i++)
// {
// str1[i] = 'a';
// }
// strcpy(string,str1);
// printf("%s",str1);
unsigned char str[10], i;
for(i = 0; i < 256; i++)
str[i] = i;
return 0;
}
//int main(int argc, const char * argv[])
//{
//
// SortRandomArray();
// /*
// int array[10]={7,8,8,6,5,1,2,4,3,10};
// for (int i=0; i<9; i++) {
// for (int j=0; j<9-i; j++) {
// if (array[j]>array[j+1]) {
// array[j]=array[j]+array[j+1];
// array[j+1]=array[j]-array[j+1];
// array[j]=array[j]-array[j+1];
// }
// }
//
// }
// for (int i=0; i<10; i++) {
// printf("%d\n",array[i]);
// }
//
// */
// //数组定义的语法
// //数据类型 数组名[长度]={值1,值2,值3,值4.....}
// //数组是存放一组相同类型数据的容器,我们要想使用数组当中的某个数据,可以使用下标的形式进行取值,数组的下标是从0开始。数组内成员个数要小于等于定义数组时的数值,否则将会造成数组越界。
// //
// //******************冒泡排序**************
//
// /*
// int a[5]={3,2,5,1,4};
// for (int i=0; i<5; i++) {
// for (int j=0; j<5-i-1; j++ ) {
// if (a[j]>a[j+1]) {
//
// }
// }
// }
// return 0;
// int array1[5]={4,3,5,2,1};
// int a=sizeof(int);
// int b=sizeof(array1);
// int len=b/a;
// int array3[len],array4[len];
// int m=0,n=0;
// printf("array1的长度为:%d\n",len);
// for (int i=0; i<len; i++) {
// if (array1[i]%2==0) {
// array3[m]=array1[i];
// m++;
// }else
// {
// array4[n]=array1[i];
// n++;
// }
// }
//
// for (int i=0; i<m; i++) {
// printf("%d\n",array3[i]);
// }
// for (int i=0; i<n; i++) {
// printf("%d\n",array4[i]);
// }
// return 0;
// int array[10]={1,2,3,1,4,22,42,12,23,21};
// for (int i=0; i<9; i++) {
// for (int j=0; j<9-i; j++) {
// if (array[j+1]>array[j]) {
// int temp=array[j+1];
// array[j+1]=array[j];
// array[j]=temp;
// }
// }
// }
//
// for (int i=0; i<10; i++) {
// printf("%d\n",array[i]);
// }
//
//
// return 0;
// */
//
//
//}