C语言——宏,函数,数据结构,运算符

图片发自App

include就是我们所说的宏
作用: 导入头文件


注:
如果系统已经提供某些功能的实现只需使用include将这些功能所在
的头文件导入进来就可以了


<系统提供的类库>
例如:
“自己定义的头文件”
例如:"calculate.h"
二者区别
1.#include 编译器首先从系统的类库来查找这个头文件 如果没有再从自己的库中查找,如果没有,就报错
2.#include“stdio.h” 编译器首先从自己的类库来查找这个头文件 如果没有再从系统的库中查找,如果没有,就报错


小贴士:【注释语句】
1.//单行注释
2./* 加内容
*/
多行注释(不能嵌套)
注释语句可以让程序具有条理性,可以帮助我们思考和检查

CLK~C%HKK%E7R8KI@S77)3V.png


main()函数

完整的main()函数应该是int main(int argc,char*argv[]){}
main()函数的作用
1.main ()函数=代码块=完成特定功能
2.所有的程序入口点都是main函数
关于 int argc:参数的个数 argument count

  • char\ argv【】:有是字符串 无*是字符【j,kd】每个参数组成的字符串数组
  • int argc:参数的个数 argument count
    char *argv【】:有*是字符串 无*是字符【j,kd】每个参数组成的字符串数组

注:int返回值 记录当前程序的运行状态
0:正常结束 资源自由分配
非0:异常结束 没收


数据结构

int main(int argc,char*argv[])
{
    printf("%d",argc);
    printf("%s",argv[0]);
    printf("hello world");
}

在输出数据时应先说明所需要的数据类型

常用数据类型
int 整型数据
long 长整型
float 单精度浮点型 1.5 99.3
double 双精度浮点数 1.5 2.2
char 字符 ’d' ‘c’
string 字符串 ”Jack“”rose“
shot 短整型
bool 是,成立,ture 不是,不成立,false

这些数据类型的区别>>所占内存不同

各数据类型大小如下
print("%d\n",sizeof(int));>>4
print("%d\n",sizeof(long));>>4
print("%d\n",sizeof(double));>>8
print("%d\n",sizeof(float));>>4
print("%d\n",sizeof(bool));>>1
print("%d\n",sizeof(chart));>>1

各数据类型的表示
int>> %d
long>>%ld
float>>%f
double >>%f
char 1>>%c
bool 1>>%d
注:关于显示0与小数点保留的问题
例:

#include
#include 

int main(){
    int count = 0;
    count = 3;
    //%d
    //%02d 不足两位用0补齐 
    printf("I have %02d dogs\n",count);//前为输出格式 后为变量的值 
    float score = 95.5; 
    printf("%f\n",score);//%.2f 代表保留小数点后两位
     
     char choose = '\0';//中文占据两个字符 
     printf("%c\n"",choose");

常用语句
printf 输出语句>>终端 console口
scanf 输入:终端输入
\n换行
\t 一个缩进


运算符

常用运算符
++ 自增 a++ 先用a再加 ++a 先加再用a (--类比++)
== 判断 a==2 >> a是否等于2 = 赋值
+= a+=2 == a=a+2 != 不等于
/ 除或者取整 % 取余数部分
&& 且 两个同时成立 // 或 只要一个成立

问号表达式和逗号表达式
1.问号表达式
例:

 char c; 
     if (3>1){
     c = 'y';
     }else{
     c = 'n';
     }
     c = 3>1? 'y':'n';//成立为前者 否则为后者

2.逗号表达式
例: result=表达式1,表达式2,表达式3
把最后的值赋给result

关于scanf
canf 格式化输入
缓冲区:"123 456 '\n'"
终端: 123 456 ‘\n’

int pwd = 0; 
    scanf("%d",pwd);
    printf("pwd=%d\n,pwd");
    int num1,num2;
    scanf("%d %d",&num1,&num2);
    printf("%d %d\n",,num2);

注意:不要在scanf随便写内容 ,scanf中的格式就是客户输入格式,若不按照所scanf格式进行输入,则无法识别。

关于if语句
当某种条件成立 才......
if(条件 ture 非零 false=0)
{成立要做的事情}

下面我们可以做一个小程序
要求:输入工资,计算实发工资
2.5000以下不交税 5000-8000交10% 8000-10000交15%
10000以上交20%
推荐使用DEV-C++
参考代码

#include 
int main(){
    int wage = 0;
    int tax = 0;
    int pay = 0;
    printf("请输入工资:\n");
    scanf("%d",&wage);
    if(wage<5000){
        pay = wage;
    }else if(wage>=5000&&wage<8000){
     tax = (wage-5000)*0.1;
        pay = wage - tax;   
    }else if(wage>=8000&&wage<10000){
        tax = (wage-8000)*0.15+3000*0.1;
    }else if(wage>=10000){
         tax = (wage-10000)*0.2+2000*0.15+3000*0.1;
    }
        printf("实发工资:%d",wage - tax);
    return 0;
}

运行结果

BK4%DT3QZKOH_6LT77UGH8T.png

下面我们可以做一个难一点的小程序
要求:输入一个人的年龄将其转化成英文
例: 请输入年龄
18
your eage is eighteen
参考

#include 

int main(){
    int age = 0;
    
    //保存个位数 21%10 = 1 
    char* gewei[] = {"","one","two","three","four","five","six","seven","eight","nine"}; 
    //保存10-19
    char* temp[] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eighteen","nineteen"};
    //保存十位 
    char* shiwei[] = {"twenty","thirty","forty","fifty","sixty","seventy","eighty","ninety"}; 
    
    printf("请输入年龄:");
    scanf("%d", &age);
    
    char *name;//保存每次取出的字符串 
    if(age < 10){
        //直接访问各位数数组
        name = gewei[age];
    }else if(age >= 10 && age <= 19){
        //获取个位数  
        int index = age % 10;
        name = temp[index];
    } else{
        //获取个位数 
        int g = age % 10; 
        //获取十位数 
        int s = age / 10;
        //取出对应的单词
        char* sString = shiwei[s-2];
        char* gString = gewei[g];
        
        printf("your age is %s-%s\n"
        ,sString,gString); 
        
        //程序还未运行完毕就提前结束
        return 0; 
    } 
    
    printf("your age is %s\n",name);
     
    return 0;
}

运行结果

ZO_%5AHHZ`@VUYGB%J~OGHV.png

你可能感兴趣的:(C语言——宏,函数,数据结构,运算符)