早上主要讲了一些习题,并且对稍微学习了类型的转换。今天的知识接收还算可以,对数组这一块有了大致的了解,也稍微明白了数组该用的地方。总体来说,今天的收获还是很丰富的,晚上做的测试题的话,第二题的求最大公倍数,还差点意思,就今天而言,没有什么太大的问题。总结下,还是得多练,多开发自己的思维,不能总局限在一个点上。
强制类型转换和赋值转换
int a=6;
float b= 2.3;
double c= 12.2;
float e;
e=a+b+c;
printf("%f",e);
下午主要学习了数组。
定义一维数组:类型名 数组名【常量表达式】
数组长度必须确定,个数确定,常量表达式不能是变量
int array[10]={11,22,33,44,55,66,77,88,99,12};
即定义了一个数组,包含十个元素,初始化的值分别为{ }内的值。
int a[5]={1,2}
如果定义是一部分元素给了初始值,另一部分没有,则系统会自动给定初值为0。
int a[]={1,2,3,4,5};
如果数组元素都赋予初值,则数组长度可以省略。
scanf("%lf",&b[5]);
可以改变第五个元素的值
练习
1.骰子有6个点数,随机函数模拟每次产生点数,抽象为数组
2.相同点数可以抽象为数组元素具体内容,累加
3.统计所有数据
int main(){
int array[6]={0};
int i;
int a;
srand((unsigned)time(NULL));
// printf("%d\n",i);
for(a=1;a<=60000;a++){
i=(rand()%6)+1;
switch(i){
case 1:
array[0]++;
break;
case 2:
array[1]++;
break;
case 3:
array[2]++;
break;
case 4:
array[3]++;
break;
case 5:
array[4]++;
break;
case 6:
array[5]++;
break;
default:
break;
}
}
printf("点数1的次数%d\n",array[0]);
printf("%d\n",array[1]);
printf("%d\n",array[2]);
printf("%d\n",array[3]);
printf("%d\n",array[4]);
printf("%d\n",array[5]);
return 0;
}
首先这个程序涉及了一个随机数的知识点,随机数需要引入头文件#include <stdlib.h>和#include <time.h>,srand((unsigned)time(NULL));固定格式, i=(rand()%6)+1;表示实在1到6之间随机产生一个数。然后把他加到循环里面,一直用来产生随机数,知道达到指定条件。这个程序首先得定义一个数组,用来存放1-6的点数,然后是随机函数,最后加入一个循环用来定义需要摇的次数。
array[0]++;这个函数主要就是用来存放筛子要到1的次数,一起类推,存到6为止,然后最后再输出就可完成这个程序。