心得体会
- 今天上课东哥把上次的知识又复习了一遍,然后我就发现自己还有一些知识点没有掌握,似乎自己学习并不是很到位。今天主要学习了数组,然后学会应用数组解决一些问题,在数制转换编程时,我并没有成功的编程出来,有点沮丧 ,但是现在课后我又重新把代码写了一遍,对数组的认识更深了一步,发现要成功快速的编好程序,别无他法,唯手熟尔;
目的
- 熟悉运算符和类型转换
- 了解头文件的创建和使用
-了解宏定义 - 熟悉数组并且能用数组解决一些实际问题
技术
- ++ -- 运算符和类型转换
- 为什么要用头文件
- 头文件的使用
- 头文件相互引用
- .#define 宏定义
- 数组定义
- 数组使用
- 进制转换
每个技术如何使用
- ++ -- 运算符和类型转换
temp++; temp=temp+1; temp+=1; //同种运算 temp--; temp=temp-1; temp-=1; //同种运算
- ++ -- 什么时候执行
printf("1:%d\n",temp1++);//等价于 printf("2:%d\n",temp1);
// temp++;
printf("2:%d\n",temp1);
QQ截图20190801224722.png
int temp1=20;
int result=temp1++ +2;//等价于 int result=temp1+2;
// temp1++;
printf("3:%d\n",result);
printf("3:%d\n",temp1);
image.png
3.++a与a++的区别
//a++ 当表达式结束之后 ,再+1
//++a 先+1 再去运算
4.数据类型转换(隐形转换和强制转换)
//隐形转换:当两种不同转换类型出现,类型自动由低向高转化
char->int->float->double->long
//强制转换:类型转换由低向高转换,并不是所有的类型都能强制转换,只能有继承关系的类可以转换
float b1=23.6;
int a3=b1;
int a3=(int)b1;
int a4=100/1024.0;
printf("%f\n",a4);
return 0;
-为什么要用头文件
1.可以封装;
2.可以保证代码的移植性
3.保证安全性
- 头文件的使用
1.创建一个.h文件:在.h文件声明一些函数 ,这些函数是需要暴露给外部用的
2.创建一个.c文件:函数声明了一定要实现,首先导入要实现的函数所处的文件 - 头文件相互引用
注意:头文件之间可能出现相互引用的问题
解决办法:加
.#ifndef ATM_HHHHH
.#define ATM_HHHHH
具体代码块
.#endif
- .#define 宏定义
1.为什么要用宏定义
a.给一个特定的数值一个特定的意义
#define WEICHAT 1;
#define QQ 2;
b.便于管理
- 数组定义
数组:需要存储多个需要存储多个同种类型的数据
1.能够存储数据 就必须有内存
2.如何定义一个数组的同时为他分配内存空间
3.数组定义时必须明确知道数组的大小
- a.初始化几个就是几个
- b.在定义时明确指定个数组的大小
int temp[5];
- c.明确指定大小 并且初始化部分数据\
float sore[]={29,234,345,345};//定义一个数组 里面存的都是float的值,可以存四个
4.数组的名字就是数组的首地址
float sore[]={29,234,345,345};
//获取第一个函数的值
score[];
//获取第一个函数的地址
&score[];
//使用%p打印地址
printf("%p\n",&score[0]);//两个都是打印首地址
printf("%p\n",score);
- 数组使用
定义一个数组 保存1-100
计算1+2+...+100总和
1.用for循环
#include "stdafx.h"
#include"iostream"
int _tmain(int argc, _TCHAR* argv[])
{
int num[100]={};
int sum=0;
for(int i=0;i<100;i++){
num[i]=i+1;
sum+=i+1;
}
printf("%d",sum);
system("pause");
return 0;
}
2.用while循环
#include "stdafx.h"
#include"iostream"
int _tmain(int argc, _TCHAR* argv[])
{
int num[100]={};
int sum=0;
int i=1;
while(i<=100){
num[i-1]=i;
sum+=i;
i++;
}
printf("%d",sum);
system("pause");
return 0;
}
- 进制转换
1.输入一个数,将其化为二进制
1.化为二进制
printf("请输入一个数:");
int temp=0;
int a[10]={};
int i=0;
scanf("%d",&temp);
while(temp!=0){
a[i] =temp%2;
temp/=2;
i++;
}
printf("化为二进制为:\n");
for(int j=i-1; j>=0;j--){
printf("%d",a[j]);
}
for(int j=i; j>=0;j--) 编程序时发现for循环中j少加了个1,然后运行结果二进制数前面总是 多了个0,后来发现while循环中i多加了个 1,所以此时二进制的位数多算了一位,应在for循环中减去。
2.化为十六进制
#include"iostream"
int _tmain(int argc, _TCHAR* argv[])
{ printf("请输入一个数:");
int temp=0;
int a[10]={};
int i=0;
scanf_s("%d",&temp);
while(temp!=0){
a[i] =temp%16;
temp/=16;
i++;
}
printf("化为十六进制为:\n");
for(int j=i-1; j>=0;j--){
if(a[j]>9){
printf("%c",'A'+a[j]-10);
}else{
printf("%d",a[j]);
}
}
system("pause");
return 0;
}
实际应用
QQ截图20190801234812.png定义一个数组 保存1-100
计算1+2+...+100总和
输入一个数,将其化为二进制
化为二进制.png
输入一个数,将其化为十六进制
转化为十六进制.png
网友评论