心得感悟
对于宏定义的使用,我还只是一知半解,不过在日后学习过程中回头看,应该会有新的理解和感悟吧。封装和数组的使用的确让程序变得更加简洁方便,在练习数组的使用时,了解到了知识盲区,如果给一个数组赋初值0(或不赋值),则里面的所有元素的值都为0。经过几天的练习,我明显感觉到我编程的速度比以前快了,准确地说应该是程序逻辑思维更强了。果然编程还是需要自己思考多一点,想明白每个程序的原理,慢慢地就会发现自己不知何时就掌握了程序的逻辑思维。
1. 目的
- 复习
float
,int
,long
,char
类型用法 - 复习比较运算符
- 理解掌握数据类型转换
- 掌握自定义头文件和实现文件的使用
- 掌握数组的使用
2. 技术
-
char
类型的使用 - 比较运算符的注意事项
- ++ -- 的运用
- 自定义头文件和实现文件
- 封装
- 解决“头文件互相引用出错”的问题
- 数组的基本使用
- 写一个程序,用数组储存1-100的数,并输出它们的和
- 写一个程序,实现由十进制转二进制,十进制转十六进制
3. 技术的使用
-
char
类型的使用
char型数值可用%d,%c打印,用%d打印出来则为ASCII码
- 比较运算符的注意事项
比较运算符有 > < == != || &&
&& 前为假,后面不执行
| | 前为假,后面执行
i = 10;
j = 20;
if(i < 20 && j++ >10){…};//前为假,j++不执行
运行后 j = 20
if(i < 20 || j++ >10){…};//前为假,j++执行
运行后 j = 21
- ++ -- 的运用
a++ 表达式结束后才+1
++a 先+1,再运算
int temp1 = 20;
printf("1:%d\n",temp1++);
printf("1:%d\n",temp1);
//运行结果为20,21
//a++ 当表达式结束之后 在+1
//++a;先+1 再去运算
- 自定义头文件和实现文件
.h 函数的声明,变量的声明(不能赋值)
.c 具体实现 实现函数的功能 操作变量
1.新建一个头文件
void login(void);
2.新建一个实现文件
#include"ATMapp.h"
#include<stdio.h>
#include "stdafx.h"
void login(void) {
printf("************************\n\n");
printf(" 登录\n\n");
printf("************************\n\n");
}
- 封装
1.创建.h文件
2.创建.c文件
3.在.h文件导入.c文件
4.在使用的地方导入.h文件
#include "stdafx.h"
#include"ATMapp.h"
#include<iostream>
int main()
{
login();
return 0;
}
- 解决“头文件互相引用出错”的问题
解决办法:使用宏定义
宏定义优点:
1.给特定数值一个特定的意义
2.便于管理
#ifndef
#define
代码块(.c)
#endif
- 数组的基本使用
什么时候用?
答:需要存储多个同种类型数据时。
1.能存储数据 就必须有内存
2.如何定义一个数组同时为他分配内存
3.数组定义必须明确知道数组大小
a.初始化几个就是几个
4.数组的名字就是数组的首地址(第一个元素的地址)
int main(int argc, char const *argv[])
{
//int a = 10;
//定义一个数组 里面存的都是float的值 可以存4个数据
//4*4byte=16byte
float score[]={29,235,235,245};
//访问第一个元素的值 0....n-1
score[0];
//获取第一个元素的地址
&score[0];
//使用%p打印地址
printf("%p\n",&score[0]);
printf("%p\n",score);
//b.在定义时明确指定数组的大小
int temp[5];
//c.明确指定大小 并且初始化部分数据
int temp2[5] = {1,2};
//如何使用数组
//访问 通过下标来访问 0 —— n-1
printf("%d\n",temp2[0] );
//赋值
temp2[0] = 6;
return 0;
}
- 写一个程序,用数组储存1-100的数,并输出它们的和
for
循环实现
int main()
{
int num[100];
int i = 0;
int sum = 0;
for (i = 0; i < 100; i++) {
num[i] = i + 1;
sum += num[i];
}
printf("%d", sum);
system("pause");
return 0;
}
while
循环实现
int main()
{
int num[100];
int i = 0;
int sum = 0;
while (i<100)
{
num[i] = i + 1;
sum += num[i];
i++;
}
printf("%d", sum);
system("pause");
return 0;
}
- 写一个程序,实现由十进制转二进制,十进制转十六进制
先选一个十进制数计算,弄清楚它的运算顺序,再进行编写
顺序:对原数字求余,并存入数组→原数字/2(/16)→到数组下一个位置
十六进制有字母,在此用以下方法打印
#include "stdafx.h"
#include<iostream>
int main()
{
int num1 = 0;
int i = 0;
int j = 0;
int two[20];
printf("【转换成二进制】\n");
printf("请输入一个数字:");
scanf_s("%d", &num1);
while(1){
two[i] = num1 % 2;
num1 /= 2;
if (num1 == 0) {
break;
}
i++;
}
for (j=i; j >= 0; j--) {
printf("%d", two[j]);
}
printf("\n\n");
int num2 = 0;
int m = 0;
int n = 0;
char six[20];
printf("【转换成十六进制】\n");
printf("请输入一个数字:");
scanf_s("%d", &num2);
while (1){
six[m] = num2 % 16;
num2 /= 16;
if (num2 == 0) {
break;
}
m++;
}
for (n=m; n >= 0; n--) {
int k = six[n];
if (k >= 10) {
printf("%c", 'A' + k - 10);
//'A'对应的ASCII码值为10
}
else
{
printf("%d", k);
}
}
printf("\n\n");
system("pause");
return 0;
}
网友评论