美文网首页
Day4>

Day4>

作者: 宁晓鸯 | 来源:发表于2019-08-02 00:08 被阅读0次

心得体会

  • 今天上课东哥把上次的知识又复习了一遍,然后我就发现自己还有一些知识点没有掌握,似乎自己学习并不是很到位。今天主要学习了数组,然后学会应用数组解决一些问题,在数制转换编程时,我并没有成功的编程出来,有点沮丧 ,但是现在课后我又重新把代码写了一遍,对数组的认识更深了一步,发现要成功快速的编好程序,别无他法,唯手熟尔;

目的

  • 熟悉运算符和类型转换
  • 了解头文件的创建和使用
    -了解宏定义
  • 熟悉数组并且能用数组解决一些实际问题

技术

  • ++ -- 运算符和类型转换
  • 为什么要用头文件
  • 头文件的使用
  • 头文件相互引用
  • .#define 宏定义
  • 数组定义
  • 数组使用
  • 进制转换

每个技术如何使用

  • ++ -- 运算符和类型转换
  1. temp++;
    temp=temp+1;
    temp+=1;
    //同种运算 
    temp--;
    temp=temp-1;
    temp-=1;
    //同种运算
    
  2. ++ -- 什么时候执行
   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;
}

实际应用

定义一个数组 保存1-100
计算1+2+...+100总和

QQ截图20190801234812.png

输入一个数,将其化为二进制


化为二进制.png

输入一个数,将其化为十六进制


转化为十六进制.png

网友评论

      本文标题:Day4>

      本文链接:https://www.haomeiwen.com/subject/thlhdctx.html