第一章、程序设计入门
1.1算术表达式
1、计算输出1+2
int main()
{
printf("%d\n",1+2)
return 0;
}
2、计算输出8/5,保留一位小数
#include<stdio.h>
int main()
{
printf("%lf\n",8.0/5.0);
return 0;
}
- 整数值用%d输出,浮点数用%f 输出
整数/整数=整数,浮点数/浮点数=浮点数
3、复杂计算头文件
#include<stdio.h>
#include<math.h>
int main()
1.2变量及其输入
scanf中占位符和变量的数据类型一一对应,且每个变量前加“&”符号
int存放整数值,double存放双精度浮点数值
不要使用头文件conio.h,包括getch()、clrscr()等函数
格式要求:①每行输出以回车结束(包括最后一行)
②每行行首无空格
③输出的每两个数或字符串以单个空格隔开
例题:输入圆柱体底面半径r 和高h,输出圆柱体表面积
#include<stdio.h> #include<math.h> int main() { const double pi=acos(-1.0); double r,h,s1,s2,s; scanf("%lf%lf",&r,&h); s1=pirr; s2=2pir*h; s=s1*2.0+s2; printf("Area=%.3f\n",s) return 0; }
如何理解s1=pi * r * r ?
赋值:赋值是个动作,先计算右边的值,再赋给左边的变量,覆盖它原来的值
1.3顺序结构程序设计
1、输入一个三位数,分离出百位十位个位,反转后输出
分析:百位等于n/100 (这里取商的整数部分)
十位等于n/10%1 (%为取余)
个位等于n%10
(此题有一模糊细节,即个位为0,例输入520,输出025还是25?)
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
printf("%d%d%d\n",n%10,n/10%10,n/100);
return 0;
}
以上输出025
#include<stdio.h>
int main()
{
int n,m;
scanf("%d",&n);
m=(n%d*100+(n/10%10)*10+(n/100))
printf("%d\n",m);
return 0;
}
以上输出25
2、输入两整数a和b,交换二者的值,然后输出
#include<stdio.h>
int main()
{
int a,b,t;
scanf("%d%d",&a,&b);
t=a;
a=b;
b=t;
printf("%d %d\n",a,b);
return 0;
}
1.4分支结构程序设计
1、已知鸡和兔的总数量为n,总腿数为m。输入n和m,依次输出鸡的数目和兔的数目,若无解则输出 No answer
分析:设鸡a 兔b,则a+b=n,2a+4b=m , 解得 a=(4n-m)/2, b=n-a
要此题有解,即a、b为非负整数
#include<stdio.h>
int main()
{
int a,b,n,m;
scanf("%d%d",&n,&m);
a=(4*n-m)/2;
b=n-a;
if(m%2==1||a<0||b<0)
printf("No answer\n");
else
printf("%d %d\n",a,b);
return 0;
}
2、输入3个整数,从小到大排序后输出
把a、b、c这三个变量改成a ≤ b ≤ c 的形式,若a > b,则交换a 和 b,接下来检查a 和 c,最后检查b和 c
#include<stdio.h>
int main()
{
int a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
if(a>b){t=a;a=b;b=t;}//执行完毕后a≤b
if(a>c){t=a;a=c;c=t;}//执行完毕后a≤c,且a≤b仍成立
if(b>c){t=b;b=c;c=t;}
printf("%d %d %d\n",a,b,c);
return 0;
}