08,标准C

来源:互联网 发布:天刀捏脸数据怎么替换 编辑:程序博客网 时间:2024/06/18 14:47
/*
   达内学习 标准C day08 2013-9-9
 预习:
  1,函数
 
 */
多个同类型变量可以合并成一个数字
数组中的所有变量从前到后顺序排列
数组只有一个名字
数组中使用编号(下标)区分不同的变量
数组中最前面的变量下边为0,后边的变量下边一次递增
数组中有下边的范围是从0到个数减一,超过这个范围的下标不可以使用


使用循环操作数组才能最大程度发挥数组的优势。这样的代码不会随着数据了的增加而增加。


使用方式非常类似的同类型变量猜有必要合并到数组中


没有被初始化的数组元素自动初始化为0


练习:
1,从键盘上读取一个整数,把其中的每个数位单独打印在屏幕上,数位之间使用空格分开(假定数字不会超过五位数)
2,从键盘独入八个整数,然后统计其中的正数和负数
3,把一个数字中0到9之间的每个数字出现的次数统计出来   //arr[num%10]++  ; num/=10;


数组的初始化
1,用大括号把所有的数据包含起来
2,数据之间用逗号分割
3,所有初始化数据从前到后按照顺序使用
4,多余的初始化数据自动被丢弃
5,没有对应初始化的数据自动初始化为0
6,如果给所有数据都提供了初始化数据,则可以省略数组声明的个数


数组下标可能不尽是下标还能做其他的使用   //arr[num%10]++  ; num/=10;  


数组名称在编译和的程序中是不存在的,在计算机内部使用数组中下标为0的元素的地址替换
数组名称一定不可以被赋值,在某次运行期间永远不改变


数组名称加下标可以得到所对应变量的地址(只适用数组)


假设有名为arr的数组,则*(arr+n)可以表示下标为n的变量,即arr[n]


对数组名称进行sizeof计算可以得出整个数组大小


C99规范中支持变长数组。变长数组不可以进行初始化,编译过程初始化此时还没有得到数组的长度


标准函数rand()可以用来获得一个随机数,把函数调用语句直接当数字使用就可以了,需要包含stdlib.h文件
标准函数srand()可以用来设置随机数种子
不同的随机数种子得到的随机数不同,同一个种子得到的随机数永远一样,也需要包含stdlib.h
标准函数time(0)可以获得0时区从1970年1月1日0时0分0秒到现在经过的所有秒数
直接把函数调用语句当数字使用就可以得到秒数  需要包含time.h
rand()计算的数记录一下。
设置好种子以后以后执行rand()结果是随机的 不一样的,但是种子固定每次生成的随机数不变


任何程序中srand标准函数只应该使用一遍


练习:
1,算出一注彩票的七个数,1-36    //rand()%36+1


由多个普通变量构成的数组叫一维数组
有多个同类型的一维数组构成的数组叫做二维数组
二维数组中有两个下标,一个用来对应一个一维数组,另一个用来对应普通变量  组下标,组内下标
通常使用循环嵌套操作二维数组


可以不写一维数组数量,一定写普通数组的元素个数
二维数组既可以当做多个一维数组进行初始化,又可以当作多个普通变量进行初始化
如果初始化的时候提供了足够多的初始化数据则可以省略一维数组的个数
给二维数组指定一个组下标,可以表示某个一维数组
对二维数组也可以使用sizeof计算整个数组的大小


二维数组名称加上n可以表示下标为n的那个一维数组的地址




作业:
1,修改彩票程序,避免彩票出现重复数字
2,身份证校验数字的规则:身份证中其17个数字分别乘下组数字(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2)
对应相乘以后求和并对11取余根据余数从如下一组数字中找到校验数字(1,0,X,9,8,7,6,5,4,3,2)
3,把一个二维数组填充成如下内容并打印在屏幕上,
11111
22222
33333
44444
55555
4,把一个二维数组填充成如下内容并打印
11112
4   2
4   2
4   2
43333