Bootstrap

c语言入门day04

1.输入输出 

按字符输入输出

getchar()

功能终端输入一个字符

参数

返回值终端输入字符ASCII

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int res=getchar();
    printf("%d\n",res);
    return 0;
}

putchar() 

功能终端输出一个字符

参数字符ASCII

返回值字符ASCII

putchar没有换行效果需要额外添加

返回值不等于输出值

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int res=getchar();
    putchar(res);
    int num=putchar('\n');
    //printf("%d\n",num);
    return 0;
}

按格式输入输出

printf

#include <stdio.h>

int printf(const char *format, ...);

功能指定格式终端输出

参数多个

返回值正确输出字符个数

格式

%d   int

%c   char

%f    float

%lf   double

%s   字符串

%p   指针

%o   八进制   %#o  原样输出

%x   十六进制   %#x  原样输出

scanf 

#include <stdio.h>

int scanf(const char *format, ...);

功能指定格式终端 (输入完毕时以回车结束)

参数多个

返回值正确输入字符个数

第一个字符输入格式错误直接返回0

scanf格式必须和终端输入格式一一对应,不能加'\n'

变量名前边加&(取地址符),表示取变量的地址

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int a=0,b=0;
    scanf("%d%d",&a,&b);
    a=a+1,b=b+1;
    printf("a=%d b=%d\n",a,b);
    return 0;
}

垃圾字符回收

通过空格回收
通过抑制符回收

%c*

通过getchar()回收

scanf输入结会在终端输入'\n';

解决'\n'程序造成的影响

#include<stdio.h>
int main(int argc, char const *argv[])
{
    char a=0,b=0;
    scanf("%c %c",&a,&b);
    getchar();
    printf("%d %d\n",a,b);
    char c=0,d=0;
    scanf("%c %c",&c,&d);
    printf("%d %d\n",c,d);
    return 0;
}

在不使用getchar()的情况下 

 

使用getchar()的情况下 

分支结构

if语句

基本结构

if(常量值或表达式)

{

//代码块1;

}

else

{

//代码块2;

}

多层分支 

if(表达式1)

{

代码段1

}

else if(表达式2)

{

}

else

{

}

判断是否闰年 

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int a=0;
    scanf("%d",&a);
    if(a%4==0&&a%100!=0)
    {
        printf("当前年份为普通闰年\n");
    }
    else if(a%4==0&&a%100==0)
    {
        printf("当前年份为世纪闰年\n");
    }
    else{
        printf("当前年份为平年\n");
    }
    return 0;
}

 将字母大小写变化

#include<stdio.h>
int main(int argc, char const *argv[])
{
    char zf;
    scanf("%c",&zf);
    if(zf>='A'&&zf<='Z')
    {
        printf("%c\n",zf+32);
    }
    else if(zf>='a'&&zf<='z')
    {
        printf("%c\n,",zf-32);
    }
    else{
        printf("error\n");
    }
    return 0;
}
嵌套结构 

if(表达式1)

{

     if(表达式2)

       {

       }

}

================

if(s>=0&&s<=100)

{

// if() ABC...

 }

else

{

printf("error\n");

}

if后边可以没有else, else前边必须有if

分支语句代码块只有一句时,可以省略{}

switch语句

switch(常量值或表达式)

{

case 常量值1

代码块1

break;

case 常量值2:

代码块2;

break;

default:

代码块n;

break;

}

case后边的常量值是整型或字符型,不能是浮点型或字符串

ca s e 分支 后边 可以 没有 b r e a k ; 会从符合条件的分支开支抑制运行到 整个 switch 语句 执行完 结束 遇到 b r e a k
#include<stdio.h>
int main(int argc, char const *argv[])
{
    int fs=0;
    printf("输入成绩\n");
    scanf("%d",&fs);
    if(fs<=100&&fs>=0)
    {
        switch(fs/10)
        {
            case 10:printf("A\n");
            break;
            case 9:printf("A\n");
            break;
            case 8:printf("B\n");
            break;
            case 7:printf("C\n");
            break;
            default:printf("你无敌了\n");
            break;
        }       
    }
    else{
        printf("error\n");
    }
    return 0;
}

 作业

终端输入一个日期判断这一年的第几天

scanf("%d-%d-%d",&y,&m,&d);

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int y=0,m=0,d=0;
    printf("输入年月日:");
    scanf("%d-%d-%d",&y,&m,&d);
    if(y%4==0)
    {
        switch(m)
        {
            case 1:printf("%d\n",d);
            break;
            case 2:printf("%d\n",d+31);
            break;
            case 3:printf("%d\n",d+60);
            break;
            case 4:printf("%d\n",d+91);
            break;
            case 5:printf("%d\n",d+121);
            break;
            case 6:printf("%d\n",d+152);
            break;
            case 7:printf("%d\n",d+182);
            break;
            case 8:printf("%d\n",d+213);
            break;
            case 9:printf("%d\n",d+244);
            break;
            case 10:printf("%d\n",d+274);
            break;
            case 11:printf("%d\n",d+305);
            break;
            case 12:printf("%d\n",d+335);
            break;
        }
    }
        else{
            switch (m)
            {
            case 1:printf("%d\n",d);
            break;
            case 2:printf("%d\n",d+31);
            break;
            case 3:printf("%d\n",d+59);
            break;
            case 4:printf("%d\n",d+90);
            break;
            case 5:printf("%d\n",d+120);
            break;
            case 6:printf("%d\n",d+151);
            break;
            case 7:printf("%d\n",d+181);
            break;
            case 8:printf("%d\n",d+212);
            break;
            case 9:printf("%d\n",d+243);
            break;
            case 10:printf("%d\n",d+273);
            break;
            case 11:printf("%d\n",d+304);
            break;
            case 12:printf("%d\n",d+334);
            break;
            }
            

        }
    
    return 0;
}

;