华清远见作业第三天

思维导图

上课代码

三目运算符

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

getchar()的使用

#include <stdio.h>
int main(int argc, const char *argv[])
{
    char c1,c2;
    //利用getchar吸收垃圾字符
    //如果利用getchar吸收垃圾字符,
    //两个字符变量的获取,必须是两条语句
    scanf("%c",&c1);
    getchar();
    scanf("%c",&c2);
    printf("%c\n",c1);
    printf("%c\n",c2);
    return 0;
}

putchar()的使用 

#include <stdio.h>
int main(int argc, const char *argv[])
{
    char c = 'p';
    printf("%c\n",c);
    putchar(c);
    putchar(10);  //输出ascii值为10的字符,换行
    putchar(65);  //A
    putchar('\n');
    return 0;
}

C语言中产生垃圾字符的原因以及处理方法

 原因:一个常见的原因是格式字符串中的换行符。当用户输入数据后按下回车键,回车键会发送一个换行符到输入流中。如果格式字符串中没有指定匹配该换行符,则scanf函数会将其留在输入流中,作为下一个输入的一部分,从而导致垃圾字符的产生。

处理方法:

利用空格解决这个问题:

代码:

#include <stdio.h>
int main(int argc, const char *argv[])
{
    char c1,c2;
    //利用scanf严格控制格式的特点,
    //用空格吸收掉,tab、空格和回车
    printf("请输入两个字符\n");
    scanf("%c %c",&c1,&c2);
    printf("字符打印\n");
    printf("%c\n",c1);
    printf("%c\n",c2);
    return 0;
}

运行效果:

利用%*c抑制字符吸收垃圾字符

代码:

#include <stdio.h>
int main(int argc, const char *argv[])
{
    char c1,c2;
    //利用%*c抑制字符,但是抑制字符一定要吃掉一个字符,不建议使用
    printf("请输入两个字符\n");    
    scanf("%c%*c%c",&c1,&c2);
    printf("字符打印\n");
    printf("%c\n",c1);
    printf("%c\n",c2);
    return 0;
}

运行效果:

利用getchar()吸收垃圾字符

代码:

#include <stdio.h>
int main(int argc, const char *argv[])
{
    char c1,c2;
    //利用getchar吸收垃圾字符
    //如果利用getchar吸收垃圾字符,
    //两个字符变量的获取,必须是两条语句
    printf("请输入两个字符\n");
    scanf("%c",&c1);
    getchar();
    scanf("%c",&c2);
    printf("字符打印\n");
    printf("%c\n",c1);
    printf("%c\n",c2);
    return 0;
}

运行效果:

终端输入一个四位数,输出该数个位、十位、百位和千位的结果,以及每位相加的和

代码:

#include<stdio.h>
int main(int argc, const char *argv[])
{
	int a;
	int x,y,z,j,sum;
	printf("请输入一个四位数\n");
	scanf("%d",&a);
	x=a/1000;       //万位
	y=a/100%10;     //百位
	z=a/10%10;      //十位
	j=a%10;         //个位
	sum=x+y+z+j;    //求和
	printf("%d的\n万位数是%d\n百位数是%d\n十位数是%d\n个位数是%d\n",a,x,y,z,j);
	printf("%d的各个位求和是%d\n",a,sum);
	return 0;
}

运行效果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值