C Programming学习笔记【谭浩强老师编】(第三章顺序程序设计)05 数据的输入输出



一、数据的输入输出

举例1:
求ax2+bx+c=0方程的根。a,b,c由键盘输入,设b2-4ac>0。
解题思路: 首先要知道求方程式的根的方法。由数学知识已知: 如果b2-4ac≥0,则一元二次方程有两个实根:x1=−b+√b2−4ac/2a,x2=−b−√b2−4ac/2a,将分式分为两项:p=−b/2a,q=√b^2−4ac/2a,则x1=p+q,x2=p-q,有了这些式子,只要知道a,b,c的值,就能顺利地求出方程的两个根。

#include <stdio.h>
#include<math.h>						//程序中要调用求平方根函数sqrt
int main() 
{	double a,b,c,disc,x1,x2,p,q;			//disc用来存放判别式(bb-4ac)的值
	scanf("%lf%lf%lf",&a,&b,&c);			//输入双精度型变量的值要用格式声明″%lf″
	disc=b*b-4*a*c;
	p=-b/(2.0*a);
	q=sqrt(disc)/(2.0*a);
	x1=p+q;x2=p-q; 					//求出方程的两个根
	printf("x1=%7.2f\nx2=%7.2f\n",x1,x2);	//输出方程的两个根
	return 0;
}

在这里插入图片描述

scanf函数用于输入a,b,c的值。
函数中括号内变量a,b,c的前面,要用地址符&。&a表示变量a在内存中的地址。
双引号内用%lf格式声明,表示输入的是双精度型实数。
格式声明为“%lf%lf%lf”,要求输入3个双精度实数。程序运行时,输入“1 3 2”,两个数之间用空格分开。输入的虽是整数,但由于指定用%lf格式输入,因此系统会先把这3个整数转换成实数1.0,3.0,2.0,然后赋给变量a,b,c。

在printf函数中,在格式符f的前面加了“7.2”,表示在输出x1和x2时,指定数据占7列,其中小数占2列。优点:
①可以根据实际需要来输出小数的位数;
②如果输出多个数据,可使输出数据整齐美观。

要在程序文件的开头用预处理指令#include把有关头文件放在本程序中
#include指令说明
三种形式:
#include “c:\cpp\include\myfile.h” 
#include "myfile.h“ 
#include <myfile.h> 

按指定路径查找文件
源程序文件所在目录
C编译系统指定的include目录

二、输出函数

printf函数
用来向终端(或系统隐含指定的输出设备)输出若干个任意类型的数据。

printf(格式控制,输出表列)
在这里插入图片描述

(1) “格式控制”是用双引号括起来的一个字符串,称为格式控制字符串,简称格式字符串。包括:
① 格式声明。格式声明由“%”和格式字符组成。作用是将输出的数据转换为指定的格式后输出。
② 普通字符。普通字符即需要在输出时原样输出的字符。
(2) 输出表列是程序需要输出的一些数据,可以是常量、变量或表达式。

在这里插入图片描述在这里插入图片描述

三、printf函数举例

用%f输出实数,只能得到6位小数。

#include <stdio.h>
int main()
{	double a=1.0;
	printf("%f\n",a/3);
	return 0;
}

在这里插入图片描述虽然a是双精度型,a/3的结果也是双精度型,但是用%f格式声明只能输出6位小数。

#include <stdio.h>
int main()
{	double a=1.0;
	printf("%20.15f\n",a/3);
	return 0;
}

在这里插入图片描述
一个双精度数只能保证15位有效数字的精确度,即使指定小数位数为50(如用%55.50f),也不能保证输出的50位都是有效的数字。

四、输入函数
scanf函数
用来输入数据。
scanf(格式控制,地址表列)

在这里插入图片描述(1) “格式控制”是用双引号括起来的一个字符串,含义同printf函数。包括:
① 格式声明。以%开始,以一个格式字符结束,中间可以插入附加的字符。
② 普通字符。
(2) 地址表列是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。

% 附加字符 格式字符
(1) scanf函数中的格式控制后面应当是变量地址,而不是变量名。
应与上述格式说明匹配,否则将会出现错误。
(2)如果在格式控制字符串中除了格式声明以外还有其他字符,则在输入数据时在对应的位置上应输入与这些字符相同的字符。
(3)在用“%c”格式声明输入字符时,空格字符和“转义字符”中的字符都作为有效字符输入。
(4) 在输入数值数据时,如输入空格、回车、Tab键或遇非法字符(不属于数值的字符),认为该数据结束。
在这里插入图片描述在这里插入图片描述

四、字符函数

1.输入:getchar

getchar函数
向计算机输入一个字符。
getchar()
函数没有参数。
函数的值就是从输入设备得到的字符。
只能接收一个字符。
如果想输入多个字符就要用多个函数。
不仅可以从输入设备获得一个可显示的字符,而且可以获得控制字符。
用getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以作为表达式的一部分。如,putchar(getchar());将接收到的字符输出。

2.输出:putchar

putchar函数
从计算机向显示器输出一个字符。
putchar (c)
用putchar函数既可以输出可显示字符,也可以输出控制字符和转义字符。
putchar©中的c可以是字符常量、整型常量、字符变量或整型变量(其值在字符的ASCII代码范围内)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值