顺序程序设计举例以及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!