数组
int score[100];
score[0]=89;
score[1]=99;
下标>=0 小于数组的长度-1
1.定义数组
类型数组名[长度];
int score[10]={11,22,33,44,55,66,77,88,44,2};
2.使用数组
数组名[下标]
3,最大值 最小值 平均值 排序
多维数组
int score[10][30];
int score[5][10][30];
每一维的下标都是从0开始到数组的长度-1
函数
将程序中的功能模块化处理。
函数返回值 函数名 (参数列表)
{
函数体
}
intmax(int a,int b)
{
return a>b?a:b;
}
ints;
s=max(3,5);
stdio.h
stdlib.h
string.h
graphics.h
....
函数库 api
application interface
用户自定义函数
系统函数库
printf
scanf
rand
......
//在函数中定义的变量作用范围是函数内部
当这个函数执行结束,变量消失,在函数内部定义的变量叫局部变量
在函数外部定义的变量叫全局变量
指针
int a;
a=3;
int * p;
p=&a;
*p=3;
1,定义指针变量
类型 * 变量名;
2,指针指向某个地址
p=&a;
//动态从内存中获取空间
p=malloc(sizeof(int));
free(p);
3,指针的操作
p=&a;
*p=4;
printf("%d",*p);
指针指向数组
int score[10];
p=&score[0];
p=score;//数组名代表数组的首地址
字符串
char s;
s='A';
s=49;
char uname[10]={'w','a','n','g','y','i','\0'};
printf("name=%s",uname);
字符串处理系统提供了一个函数库string.h
strcat(char a[],char b[]) 字符串连接
strcmp(char a[],char b[]) 字符串比较
strcpy 字符串拷贝
strlen 返回字符串长度
-----------------------------------
intstrlen(char s[])
{
int count=0;
int i;
while(1)
{
if(s[i]!='\0')
{
count++;
i++
}else
{
return count;
}
}
}
-------------------------------------
作业1:
使用数组实现10名学生的成绩录入,并输出这10名学生中成绩的
最高分
最低分
平均分
按照分数从大到小排序
思考:
如何实现从小到大排序?
如果学院有5个班,每个班30人,如何处理?
求所有成绩中的最高分是哪个班的,第几个学生,如何处理?
作业2:
使用指针实现作业1
作业3:
将作业1中的以下功能定义为独立的函数
1,对一个数组进行数据录入
void arrayinput(int * array,int count);
2,对一个数组进行数据输出
void arrayprint(int * array,int count);
3,对一个数组实现最大值的获取
int arrayMax(int * array,int count);
4,对一个数组实现最小值的获取
intarrayMin(int * array,int count);
5,对一个数组进行排序
void arraySort(int array,int order);//0asc 1desc
作业4 (思考)
编写一个递归函数,求一个整数的2进制形式
输入8
输出 1000
输入15
输出 1111
void calc(int n);
calc(8);
作业5:
编写程序实现一个用户登录的模拟,用户从控制台输入用户名,密码
1判断输入是否合法
用户名不超过15字符
密码必须用数字
2验证用户名和密码是否正确
用户名 wangyi 密码123正确
作业6:
实现字符串处理函数
字符串长度获取strlen
字符串连接 strcat
字符串比较 strcmp
字符串查询 strfind(char * a,char * b); 返回字符串b在字符串a的位置
"hellonihao","nni" 6,如果不存在返回-1
作业7:(思考)
用户从控制台输入一篇文章,输入完成以后,判读文章中一共有多少个单词?
char txt[2000];
hello lili,hello hameimei,nice to meet you.
hello nice to meet you too.