5 顺序程序设计举例以及scanf输入函数用法说明

顺序程序设计举例以及scanf用法说明

在4中说到了一个C程序设计,求5!
传送 求5!
该题在蓝皮书第十九页,自行复习!

一、进入正题:
例题:有人用温度计测量出用华氏法表示的温度(如64°F),今要求把它转化为以摄氏法表示的温度(如17.8°C);
解题思路:这个问题的算法较简单,关键在于找到两者之间的公式,来用摄氏法表示华氏法,根据物理学知识可知其转换公式为C=(5/9)*(F-32);

整个程序设计的流程就是:
①输入F的值64;(用F表示华氏温度)
②执行这个公式;
③输出C的值。(用C表示摄氏温度)

编写程序:
在这里插入图片描述
复习一下,C程序的执行步骤?
(编辑源程序)、编译、连接、运行
执行结果:
输出图
程序分析:
本程序出现了浮点型数据,因此用float来定义F\C,然后按照下图流程来写程序:
流程图
%f代表以小数形式输出单精度数(float)、双精度数(double),隐含输出6位小数,如上面的执行输出图,小数点后面有六位小数。

另外一篇博客使用scanf输入函数写的该程序;
这是个链接

二、scanf输入函数
形式:

scanf(格式控制,地址列表)

地址列表:

地址运算符&

举例:例如我要在屏幕上输入整型数据a和实型数据b;
写法:

scanf(“%d %f”,&a,&b);
scanf(“%d %f”,a,b);这样写就不正确,是非法的

在输入数据时要注意对应的位置;例如:
scanf(“a=%d,b=%d,c=%d”,&a,&b,&c);
具体代码如下:

#include <stdio.h>
int main(){
	int a,b,c;
	scanf("a=%d,b=%d,c=%d",&a,&b,&c);
	printf("a=%d,b=%d,c=%d\n",a,b,c);
	return 0;
}

执行之后,屏幕会让你输入数据
输入数据时scanf中的普通字符都要原样输入,例如:

该题目错误写法1:(只输入了1.2.3)
在这里插入图片描述
该题目错误写法2:(不带标点符号)
在这里插入图片描述
正确写法:输入数据时scanf中的普通字符都要原样输入
在这里插入图片描述
如果代码是这样的:

#include <stdio.h>
int main(){
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	printf("a=%d,b=%d,c=%d\n",a,b,c);
	return 0;
}

执行时:
输入123按回车键没有反应,系统把123当做了a:
在这里插入图片描述
继续输入,当三个数输完才会有结果:
在这里插入图片描述
如果我们在输入时给他加上空格作为间隔,看图:
在这里插入图片描述
但是在输入字符数据时不能加空格作为间隔,例如:

#include <stdio.h>
int main(){
	char a,b,c;		//定义abc为char类型
	scanf("%c%c%c",&a,&b,&c);	//输入3个字符	
	printf("a=%c,b=%c,c=%c\n",a,b,c);	//输出abc对应的字符
	return 0;
}

如果加了空格作为间隔,则会把h赋值给a,h后面的空格赋值给b,y赋值给c,看图:
在这里插入图片描述
直接输入hyh,才能正确显示:
在这里插入图片描述
猜想:如果输入hanyanhong会怎样?
在这里插入图片描述

没错,只会读取前三个字符,赋给abc;
在这里插入图片描述
over!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野马菲比

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值