C语言典型例题27

《C程序设计教程(第四版)------谭浩强》

习题2.4 用下面的scanf函数输入数据

使a=3,b=7,x=8.5,y=71.8,c1='A',c2='a'。问在键盘上怎么输入

代码

复制代码
//《C程序设计教程(第四版)------谭浩强》
//习题2.4 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.8,c1='A',c2='a'。问在键盘上怎么输入

#include <stdio.h>
int main()
{
	int a,b;
	float x,y;
	char c1,c2;
	
	//输入
	printf("请输入a和b的值:");
	scanf("%d %d",&a,&b);
	
	printf("请输入x和y的值:");
	scanf("%f %f",&x,&y);
	
	printf("请输入c1和c2的值:");
	scanf(" %c %c",&c1,&c2);
	
	printf("a=%d,b=%d,x=%.2f,y=%.2f,c1=%c,c2=%c\n",a,b,x,y,c1,c2);
	
	return 0;
}

运行结果

注意事项:

在输入c1和c2的时候,如果之前有残留的换行符(如按下了回车,有空格等等),那么可能导致c1没有正确读取到字符。为了保险起见,可以在输入c1和c2之前增加一个空格,或者使用%c格式符后加空格,这样可以清除输入缓冲区的换行符。

复制代码
`scanf(" %c %c", &c1, &c2); // 注意前面的空格
`

这种写法会在读取字符前忽略前面的空白字符(包括换行符),因此可以避免读取到意外的字符。

错误演示:

相关推荐
pursuit_csdn10 小时前
力扣周赛 503
java·算法·leetcode
Zhang~Ling10 小时前
C++ 模板进阶:非类型参数、特化与分离编译深度解析
开发语言·c++
sheeta199810 小时前
LeetCode 每日一题笔记 日期:2026.05.21 题目:3043. 最长公共前缀的长度
笔记·算法·leetcode
Oj92q85H510 小时前
如何在Dev-C++中使用TDM-GCC编译项目
linux·开发语言·c++
Chase_______10 小时前
【Java】String 常量池、== 与 equals 详解:从引用比较到 intern() 一次讲清
java·开发语言
QCzblack10 小时前
期中考复现
开发语言·python
吃好睡好便好10 小时前
创建随机矩阵
开发语言·人工智能·线性代数·算法·matlab·矩阵
j_xxx404_10 小时前
Linux线程控制:从用户态控制到内核级克隆全链路解析
linux·运维·服务器·开发语言·c++·ai
不瘦80斤不改名10 小时前
Javascript中的对象
开发语言·javascript·ecmascript
喵星人工作室10 小时前
C++火影忍者1.1版本
开发语言·c++·游戏