思维导图
上课代码
三目运算符
#include
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
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
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
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
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
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
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;
}
运行效果: