目录
一、格式化输出函数:
格式化输出函数printf()
1、格式
2、程序示例:
3、格式字符
4、举例
示例一:
示例二:
示例三:
示例四:
示例五:
5、注意事项
二、格式化输入函数
格式化输入函数scanf()
1、格式
(1)函数格式
(2)程序示例
2、举例
示例一:
示例二:
示例三:
示例四:
3、注意事项
三、字符输入输出函数
字符输出函数putchar()
1、函数格式
2、程序示例
字符输入函数getchar()
1、函数格式
2、程序示例
3、练习
算法
1、算法的特性
2.评价算法的标准
3.算法的表示方法
顺序结构综合应用
1、控制结构
顺序结构:
题意:
程序分为三个部分:
输入原始数据
进行计算处理
输出运行结果
#include
#define pi 3.14
int main()
{
float s,c,r;
printf("请输入半径:");
scanf("%f",&r);
s=pi*r*r;
c=2*pi*r;
printf("圆的面积为:\n");
printf("s=%f",s);
printf("\n圆的周长为:\n");
printf("c=%f",c);
}
(1)函数格式
printf(“字符串常量”);//将“字符串常量”显示输出
printf(“格式控制字符串”,输出项列表);//按“格式字符串”所规定的格式,将“输出项列表”中输出项的值输出到标准输出设备
%d格式符——按实际位数输出十进制整数
%md——右对齐,m是一个数字。数据输出占m格,不足空格补齐
%-md——左对齐,m是一个数字
%ld、%hd——长整型、短整型
%u——无符号整型
#include
int main()
{
int a=123,b=12345;
printf("%d,%d\n",a,b);
printf("%-4d,%4d\n",a,a);
printf("%-4d,%4d\n",b,b);
}
#include
int main()
{
int a=97;
printf("十进制:%d\n",a);
printf("八进制:%o\n",a);
printf("十六进制:%x,%X\n",a,a);
printf("十六进制:%x,%X\n",10,10);
printf("前导符:%#o,%#X\n",a,a);
}
%c:用来输出一个字符
%s:输出字符串
可在%和s中间插入m.n。
m可省略
n表示只输出字符串左边n个字符。
#include
int main()
{
char ch1='A',ch2='a';
printf("%c\n",(ch1,ch2));
}
#include
int main()
{
printf("%8.3s\n","book");
printf("%.3s\n","book");
}
%f格式符
以小数形式输出实数。
%m.nf——右对齐
%-m.nf——左对齐
m代表域宽,即共占m列
n代表保留n位小数
%lf
#include
int main()
{
float x=123.456;
printf("x=%f|\n",x);
printf("x=%6.1f|\n",x);
printf("x=%-6.1f|\n",x);
printf("x=%.1f|\n",x);
printf("x=%e|\n",x);
}
(1)输出格式中应注意在两个数之间留逗号、空格或回车,或者其他普通字符,以使输出显示更友好。
(2)格式控制符必须与输出项一一对应,且类型必须匹配。若格式控制符个数少于输出项个数,则多余的输出项不予输出;
(3)在格式控制中,还可以包含将按原样输出的任意合法字符(包括汉字和转义符)。
(4) 如果要输出%符号,可以在格式控制中用%%表示。
(5) 调用函数printf时, 其参数是从右至左进行处理。例如:
int k= 8;
printf("%d,%d\n",k,++k);
输出结果:9,9
scanf(“格式控制字符串”,输入项地址列表);
格式控制字符串:
双引号括起来
包括“格式控制符”和“普通字符”
“格式控制符”由%开头
“普通字符”按原样输入。
输入项地址列表:
输入项变量地址组成
变量地址的表示方式为: &变量名
输入项个数与格式控制符个数相同
//按“格式控制字符串”所规定的格式,给“输入项地址列表”所对应的存储单元输入数据。
scanf("%d%d",&a,&b);
scanf("%f",&r);
scanf("%d,%d",&a,&b);
输入数值数据:
输入整数或实数时,输入的数据之间必须用空格、回车符、制表符(tab键)等间隔符隔开。
2)输入字符型数据%c:
输入字符时,空格字符和转义字符中的字符都作为有效字符输入。因此在输入字符数据之前不需要插入间隔符。
3)指定输入数据所占的宽度。在格式字符前加入一个正整数指定输入数据所占的宽度。
4)跳过某个输入数据
在%和格式字符之间加入“*”号,作用是跳过对应的输入数据。
1、格式控制符必须与输入项一一对应
若格式控制符个数少于输入项个数,则多余的输入项将无法得到正确的输入值;若格式控制符个数多于输入项个数,多余的数据作废。
2、当输入的数据少于输入项时,运行程序将等待输入,直到满足要求为止。
putchar ( ch ); /I在标准输出设备上输出一个字符
ch代表整型或字符型的常量、变量或表达式(不包括实型)
putchar('A'); //输出字符'A'
putchar(\101'); //101八进制转十进制输出65,输 出字符'A'
putchar("a'-32); //输出字符'A'
putchar(65); //输 出字符'A'
int ch=65;putchar(ch); //输 出字符'A'
getchar ( ); 在标准输入缓冲区中读取一个字符。
参数为空
char ch; .
ch=getchar( );
putchar(ch);
putchar(getchar());
/将getchar( )读入的字符直接用putchar()输出
下面程序功能为:输入一个A~Z之间的字母,输出与之左右相邻的两个字母,根据注释信息将程序填写完整。
#include
int main()
{
char ss=getchar(); //调用getchar()输入一个字母,并赋值给ss
putchar(ss-1); //调用putchar()输出与ss左相邻的字母
putchar(ss+1); //调用putchar()输出与ss右相邻的字母
}
程序=数据结构+算法
算法是为解决一个问题而采取的方法和步骤,是程序的灵魂。
有穷性:一个算法应包含有限的操作步骤,而不能是无限的(不进入死循环)
确定性:算法中的每一个步骤都应当是确定的,对于每一个过程不能有二义性。
有0个或多个输入:所谓输入是指在执行算法时需要从外界取得必要的信息。
有1个或多个输出:算法的目的是为了求解,“解”就是输出。没有输出的算法是没有意义的。
有效性:算法的每个步骤都应当能有效执行,并能最终得到正确的结果。
①正确性
②可读性
③健壮性
④高效性
①自然语言
②流程图
③N-S流程图
④伪代码
⑤计算机语言
三种基本的控制结构:顺序结构、选择结构、循环结构
变量定义
数据输入
数据处理
数据输出
1.模拟ATM机取款操作,仅要求输入取款金额,输出“正在出钞提示。
答案简略版
#include
int main()
{
float a;
scanf("%f",&a);
printf("正在出钞");
}
2.从键盘输入一个大写字母,然后转换成小写字母输出。
答案简略版
#include
int main()
{
char zz;
zz=getchar();
putchar(zz+32);
}
#include
int main()
{
char zz,rr;
scanf("%c",&zz);
rr=zz+32;
printf("%c",rr);
}
3.鸡兔同笼问题:有若干只鸡兔同在一个笼子里, 从上面数,有35命头,从下面数,有94只脚。问笼中各有几只鸡和几只兔?
错误记录:
我固执的觉得可以用总头=鸡头+兔头、总腿=鸡腿+兔腿解决,然而并不可以
粗看这不是对吗?腿数对不起来
右面的X还没有求出来
还是不对
#include
int main()
{
//假设笼子里有x只鸡和y只兔子
//h头,f脚
int x,y,h,f;
printf("请输入鸡和兔的总只数:");
scanf("%d",&h); //输入
printf("请输入鸡和兔的总腿数:");
scanf("%d",&f); //输入
y=(f-2*h)/2; //(总腿数-2*头数)/2=兔数
x=h-y; //x+y=35 总头数减去兔子只数还剩鸡的只数
printf("鸡有:");
printf("%d\n",x);
printf("兔有:");
printf("%d",y);
}
4.变量值互换:从键盘随机输入两个整数赋给变量x、y,且输出x、y,然后使x与y的值互换,再输出x、y
#include
int main()
{
int x,y,z;
printf("请输入第一个数:");
scanf("%d",&x);
printf("请输入第二个数:");
scanf("%d",&y);
printf("%d%d\n",x,y);
z=x,x=y,y=z;
printf("两级反转:\n%d\n%d",x,y);
}
5.输入三角形的三边长,求三角形面积。
#include
#include
int main()
{
float a,b,c,s,area;
scanf("%f%f%f",&a,&b,&c);
s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c)); //sqrt()求平方根的函数
printf("a=%7.2f,b=%7.2f,c=%7.2f\n",a,b,c);
printf("area=%8.3f\n",area);
}