版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用C语言编写
简单的程序有且仅有一个main(){……}(主函数)框架;语句均由分号“;”结尾;所有变量使用前须声明(说明)其类型;有一些函数(标准库函数或自定义函数)调用;……..会有#号开头的一些编译预处理代码行;会有注释,用“/**/”或“//”标注。上次课学过的例1计算并输出三角形面积例2计算并输出1+2+……+100例3判断素数这次课要讲的例1计算并输出三角形面积已知三角形的三条边长分别为a、b、c,求三角形面积。其中:s=(a+b+c)/2#include<stdio.h> #include<math.h>main(){inta=3,b=4,c=5;floats,area;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%d,b=%d,c=%d,s=%f\n",a,b,c,s);printf("area=%f\n",area);}#include<stdio.h> #include<math.h>main(){floata=3,b=4,c=5,s,area;s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f,b=%f,c=%f,s=%f\n",a,b,c,s);printf("area=%7.2f\n",area);}#include<stdio.h> #include<math.h>main(){floata=3,b=4,c=5,s,A;s=1.0/2*(a+b+c);
A=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%f,b=%f,c=%f,s=%f\n",a,b,c,s);printf(“面积=%7.2f\n",A);}数据输出Printf格式输出函数按一定格式输出若干任意类型的数据。printf输出时会对输出项求值。格式:
printf("格式控制字符串",输出项表列);例:printf("a=%db=%f",a,b);
函数名输出表列普通字符格式说明数据输出printf格式输出函数格式说明符的意义格式符意义例
子结果%d十进制inta=567;printf("%d“,a);567%x十六进制inta=567;
printf("%x“,a);0x237%o八进制inta=567;
printf("%o“,a);1067%u无号的十进制整数inta=45;printf("%u“,a);45%c字符chara=‘A’;
printf("%c“,a);A%s字符串char*s=“This;”printf("%s“,s);This%e浮点表示法输出floata=567.789;
printf("%e“,a);5.68E+02%f小数形式floata=567.789;printf("%f“,a);567.789%ge和f中较短的一种floata=567.789;printf("%g“,a);567.789%%百分号本身
printf("%%");%数据输出printf格式输出函数printf附加格式说明符:l长整型整数,加在d、o、x、u前Llongdouble型数,加在f、e、g前m表示数据占用的最小宽度数据宽度大于m,按实际宽度输出数据宽度小于m时,补空格n对实数表示输出n位小数对字符串表示最多输出的字符个数,如:printf("%5.2f\n%6.1f\n",f1,f2);-改变输出内容的对齐方式:缺省为右对齐例1计算并输出三角形面积已知三角形的三条边长分别为a、b、c,求三角形面积。其中:s=(a+b+c)/2。若三角形的三条边长是变量,则在程序运行时输入:#include<stdio.h> #include<math.h>main(){floata,b,c,s,area;
scanf(“%f%f%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));
printf(“a=%f,b=%f,c=%f,s=%f\n”,a,b,c,s);
printf(“area=%7.2f\n”,area);}*注意非法字符数据输入scanf格式输入函数按一定格式从输入设备输入若干个任意类型的数据。格式:
scanf("格式控制字符串",地址表列);
例:scanf("%d,%f",&a,&b);非格式字符格式说明地址表列数据输入scanf格式输入函数表3.2scanf函数的格式说明符格式说明符意义例子输入数据举例%d输入一个十进制整数scanf(“%d”,&a);567%o输入一个八进制数(无前导0)scanf(“%o”,&a);1067%f输入一个小数形式的数scanf(“%f”,&a);567.789%s输入一个字符串scanf(“%s”,&a);
This%x输入一个十六进制数(无前导0x)scanf(“%x”,&a);
0x237%c输入一个字符scanf(“%c”,&a);
A%e输入一个科学计数法的浮点数scanf(“%e”,&a);5.68E+02%u输入一个不带正负号的十进制整数scanf(“%u”,&a);45数据输入scanf格式输入函数scanf附加格式说明符l
加在d、o、x、u前:输入长整型;加在f、e前:输入双精度型;L
加在f、e前:输入longdouble型;h加在d、o、x前:输入短整型;m(一个整数)表示数据占用的宽度;*本输入项在读入后不赋给相应的变量。数据输入scanf格式输入函数多数据项输入时,输入数据间的分隔有3种方式:采用系统分隔符(空格、回车、制表符Tab):scanf("%d%d%d",&a,&b,&c);用户自己设定分隔符,如逗号、冒号等:scanf("%d,%d,%d",&a,&b,&c);设置输入项位数(m),按位截取,如:scanf(“%2d%3d%4d”,
&a,
&b,
&c);
求1+2+……+100抽取具有共性的算式:sum=sum+isum初值为0,该算式重复100次,i从1变到100设i为循环变量,则:指定循环起点的表达式1:i=1给出循环条件的表达式2:i<=100设置循环步长的表达式3:i++循环体语句:sum=sum+i;for(i=1;i<=100;i++)sum=sum+i;例2计算并输出1+2+……+100/*计算1+2+3+……+100*/#include
<stdio.h>main(){
int
i,sum;
sum=0;
//置sum初值为0
for(i=1;i<=100;i++)
//循环重复100次
sum=
sum
+i;
//反复累加
printf("sum=%d\n",sum);//输出累加和}例2计算并输出1+2+……+100循环变量累加和for循环for循环结构及执行
for(表达式1;表达式2;表达式3)
{
}先执行表达式1。若表达式2的值非0,重复执行循环体语句与表达式3。直到表达式2的值为0时止。循环体语句;循环起始条件循环结束条件循环增量…定义:除了1和自身外,无法被其他自然数整除的正整数。算法(穷举法):设数为n,并设置一个标志flag为1;用2~n-1依次去除n,若能整除,则不是素数,flag置0,跳出循环;若都不能整除,循环正常结束,flag仍为1,n是素数。输出:若flag为1,则输出“n是素数”;若flag为0,则输出“n不是素数”;例3判断素数能否整除,使用取模(相除取余数)运算符%,若n%k=0(即余数为0),则n可以被k整除。例3判断素数输入一个数,判断其是否为素数。main(){intn,
k,
flag;
printf("输入一个数:");
scanf("%d",&n);
for(flag=1,k=2;k<=n-1;k++)
if(n%k==0)
{
flag=0;
break;
}
//如果n%k≠0,则继续循环,否则退出循环
if(flag==1)
printf("%d是素数。\n",n);
else
printf("%d
不是素数。\n",n);}if语句if语句根据给定表达式的值进行判断,从而确定执行程序流程中的哪一个分支。表达式是由操作数和运算符按一定语法形式组成的符号序列。每个表达式经过运算(求值)后都会产生一个确定的值,称为表达式的值。if语句中表达式多为关系表达式或逻辑表达式。if语句中表达式的值分两种:0与非0;
关系运算符及关系表达式1.关系运算符(均是二元运算符)<小于
<=小于或等于>大于
>=大于或等于==等于
!=不等于2.关系表达式两个表达式与关系运算符可组成一个关系表达式。若比较关系成立,则关系表达式的值为1(true),否则为0(false)。如:13>27的求值结果为0,13<=21的求值结果为1。注意:等于是==(两个等号)。优先级高优先级低逻辑运算符及逻辑表达式1.逻辑运算符逻辑运算亦称布尔运算。逻辑运算符主要包括(优先级由高到低):!(非)
&&(与)||(或)其中:!是一元运算符,其余是二元运算符。2.逻辑表达式逻辑表达式的操作数可以是字符类型、整数类型,结果为1或0。如:判断闰年的逻辑表达式:(year%4==0&&year%100!=0)||year%400==0如上式值为1,则是闰年,否则不是。逻辑运算符及逻辑表达式1.逻辑运算符逻辑运算亦称布尔运算。逻辑运算符主要包括(优先级高到低):!(非)
&&(与)||(或)其中:!是一元运算符,其余是二元运算符。2.逻辑表达式逻辑表达式的操作数可以是字符类型、整数类型,结果为1或0。if语句1.简单if语句(单臂)
if(表达式){语句序列;}如:
if(x>y)
printf(“%d”,x);表达式语句序列非00if语句2.第二种结构的if语句(双臂)
if(表达式){语句序列1;}else{语句序列2;}如:
if(x>y)
printf(“%d”,x);else
printf(“%d”,y);表达式语句序列2语句序列10非0输出1~100之间的所有素数。/*输出1~100之间的所有素数*/main(){
int
i,j;
for(i=2;i<100;i++){for(j=2;i%j;j++);
if(i==j)
printf("素数=%d\n",i);}}例3判断素数将1~100之间的所有素数放到一个数组中。/*将1~100之间的所有素数放到一个数组中*/#include"stdio.h"main(){inti,j;intk,m,a[100];for(m=0;m<100;m++)a[m]=0;for(i=2,k=0;i<100;i++){for(j=2;i%j;j++);if(i==j){a[k]=j;k++;}}/*printf("共有%d个素数。\n",k);*/for(m=0;m<k;m++)printf("第%d个素数=%d\n",m+1,a[m]);}例3判断素数引入宏定义。/*引入宏定义*/#include"stdio.h"#defineN100main(){inti,j;intk,m,a[N];for(m=0;m<N;m++)a[m]=0;for(i=2,k=0;i<N;i++){for(j=2;i%j;j++);if(i==j){a[k]=j;k++;}}/*printf("共有%d个素数。\n",k);*/for(m=0;m<k;m++)printf("第%d个素数=%d\n",m+1,a[m]);}例3判断素数将1~N之间的所有素数放到一个文件中。/*将1~N之间的所有素数放到一个文件中*/#include"stdio.h"#include"stdlib.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度专利技术许可使用合同
- 2024年度云计算基础设施租赁合同:某企业租赁某云服务公司的云计算基础设施
- 2024年度战略合作合同合作目标及合作内容
- 2024年度北京汽车租赁市场调研与市场推广合同
- 2024年度数据处理合同:某大数据中心数据处理与合作
- 2024年度新能源发电设备制造与采购合同
- 2024年度物业保洁分包合同
- 2024年度医疗设备采购、安装及培训合同
- 2024年度物流服务预付款合同
- 2024年度框架协议:年度采购框架合同
- 《投资理财》PPT课件(PPT 26页)
- ZDC30-1.2型跑车防护装置说明书
- 保健食品注册及质量标准要求(1)
- 对“结合能”的几点辨析(修正版)
- 口腔黏膜病图示PPT医学课件
- 高支模施工验收(完整版)
- 隧道初支、衬砌背后脱空处理修改
- 半导体专业实验补充silvaco器件仿真
- 反击式破碎机说明书
- 共青团中山市12355青少年综合服务平台建设方案
- 第五章中国的地理差异
评论
0/150
提交评论