day04

局部变量和全局变量可以重命名,作用域遵循就近原则

1)输入输出

1.1按字符输入输出

getchar

man 手册查看getchar

#include<stdio.h>

int getchar(void);

功能:向终端输入一个字符

参数:无

返回值:终端输入的字符的ASCII码值

int res  getchar();

printf("%d\n",res); // 输入一个数,输出他的ASCII码

putchar

#include<include>

int putchar(int  c);

功能:终端输出一个字符

参数:字符的ASCII码值

返回值:字符的ASCII码值

putchar  无换行效果,需要额外添加

int res = getchar();

putchar(res);

int num=putchar('\n'); //putchar(10)

//  printf("%d\n",num);//

1.2按格式输入输出

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’

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

2)垃圾字符回收

2.1  通过空格回收

可以回收一个或多个空格  tab   回车

char  c=0,d=0;

scanf("%c  %c",&c,&d);

printf("c:%c  d:%d\n",c,d);

2.2  %*c  *抑制符(了解)

可以回收任意一个字符

char c=0,d=0;

scanf("%c%*c%c",&c,&d);

printf("c:%c   d:%c\n",c,d);

2.3   getchar

while(1)

{

     char  a;

     scanf("%c",&a);

     printf("%c\n",a);

     getchar();

}

3)分支语句

顺序结构:

分支结构:

循环结构:

if

基本结构

if(常量值或表达式)

{

    //代码块

}

if(常量值或表达式)

{

     //代码块1

}

else

{

     //代码块2

}

多层分支

if(表达式1)

{

    代码段1;

}

else   if (表达式2)

{

     代码段2;

}

else

{

    代码段3;

}

嵌套结构

if(表达式1)

{

  if(表达式2)

{

      代码段1;

}

       代码段2;

}

注意

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

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

switch

switch(常量值或表达式)

{

   case  常量值1:

             代码块1;

             break;

   case   常量值2:

              代码块2;

              break;

   default:

              代码块n;

              break;

}

注意:

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

2.case分支遇到break结束;后边可以没有break,会从符合条件的分支开始一直运行到整个switch语句执行完才结束

2输入日期,输出这天是这一年的第几天。

#include <stdio.h>
int main(int argc,char const *argv[])
{
    int y=0,m=0,d=0,sum;
    printf("输入日期:") ;
    scanf("%d-%d-%d",&y,&m,&d); 
    {
        switch  (m)
        {
            case  1:
            sum=0;
            break  ;
            case  2:
            sum=31;
            break;
            case  3:
            sum=59;
            break;
            case 4:
            sum=90;
            break;
            case  5:
            sum=120;
            break;
            case  6:
            sum=151;
            break;
            case  7:
            sum=181;
            break;
            case  8:
            sum=212;
            break;
            case  9:
            sum=243;
            break;
            case 10:
            sum=273;
            break;
            case 11:
            sum=304;
            break;
            default:
            sum=335;
            break;
            
        }
        sum=sum+d;
        if(m>=3)
        {
        if((y%4==0&&y%100!=0)||(y%400==0))
        {
            sum++;
            printf("是这一年的%d天\n",sum);
        }
        else
        {
            printf("是这一年的%d天\n",sum);
        }
        }
                else
        {
            printf("是这一年的%d天\n",sum);
        }

    }
    return 0;
}
 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值