1.整理思维导图
2.理解scanf吸收垃圾字符的原因和过程
scanf是一个严格控制格式的函数,双引号内的格式符是什么格式, 终端输入就是什么格式.
scanf("%c%c",&a,&b);
当对字符进行输入时,当输入一个字符时会被第一个%d吸收(存入a),然而下一步按回车吸收下一步呢,程序会结束,因为当按火车时会将'\n'存入第二个%d.
处理办法:
1.通过抑制字符吸收 %*c
scanf("%c%*c%c",&a,&b);
2.getchar()吸收垃圾字符
scanf("%c",&a);
getchar();
scanf("%c",&b);
3.在%d前出入空格吸收垃圾字符
scanf("%c %c");
3.终端输入一个四位数,输出该数个位、十位、百位和千位的结果,以及每位相加的和
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int q = 0;
int b = 0;
int s = 0;
int g = 0;
int num = 0;
scanf("%d",&num);
g = num % 10;
s = num /10 % 10;
b = num /100 %10;
q = num /1000;
num = g + s + b + q;
printf("q = %d b = %d s = %d g = %d num = %d\n",q,b,s,g,num);
return 0;
}