C语音课堂代码笔记Word格式.docx
- 文档编号:8426469
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:76
- 大小:30.78KB
C语音课堂代码笔记Word格式.docx
《C语音课堂代码笔记Word格式.docx》由会员分享,可在线阅读,更多相关《C语音课堂代码笔记Word格式.docx(76页珍藏版)》请在冰点文库上搜索。
∙2012-11-292:
06:
52完成第4章~第6章课堂代码的更新,上线
目录
4-1大小写转换
4-ex1判断闰年
4-ex2分段函数
5-1猜比赛结果
5-2a多样例a+b
(1)
5-2b多样例a+b
(2)
5-2c多样例a+b(3)
5-3求n个数的累加和
5-4求n个数中的最大值
5-5最大公约数
5-6有多少个1
5-7丑数
5-8素数的判定
5-9字母塔
6-1计算GPA
6-ex1区间最大值
6-2求素数表
6-3素数的个数
6-4铺骨牌
6-5a选择排序
6-5b冒泡排序
6-6组合数
6-7矩阵输出
6-ex2回旋矩阵
6-8回文串
6-9朴素模式匹配
7-1大小写转换
7-2数列
7-3字符串排序
8-1三个数的最大公约数
8-2swap函数
8-3字符串逆序函数
8-4整数数组排序函数
8-5字符串数组排序函数
8-6qsort函数的使用
8-7N!
8-8Fibonacci数的递归实现
8-9Hanoi塔
8-10快速排序
8-11a的N次幂(快速幂)
8-12Fibonacci数(矩阵快速幂)
9-1常用字符处理函数的实现
9-2sscanf的使用示例
9-3sprint的使用示例
10-1班级绩点排名
10-2malloc动态分配一维数组
10-3malloc动态分配二维数组
11-1宏定义的使用举例
12-1常见位运算的操作举例
12-2破案
12-3ACM/ICPC组队
13-1文本文件的操作举例
13-2二进制文件的操作举例
13-3文件重定向的操作举例
回目录
4-1大小写转换
?
1
2
3
4
5
6
7
8
9
10
11
12
#include<
stdio.h>
intmain(){
charc;
c=getchar();
if(c>
='
A'
&
c<
Z'
)c+='
a'
-'
;
elseif(c>
z'
)c-='
putchar(c);
return0;
}
4-ex1判断闰年
inty;
scanf("
%d"
&
y);
if(y%400==0||y%100!
=0&
y%4==0)puts("
Yes"
);
elseputs("
No"
}
4-ex2分段函数
13
14
math.h>
doublex,y;
%lf"
x);
if(x<
0.0)y=x*x*x;
elseif(y<
=1.0)y=x*x;
elsey=sqrt(x);
printf("
%f\n"
y);
4-2计算器
∙使用if语句实现
doublex,y,z;
charop;
%lf%c%lf"
x,&
op,&
if(op=='
+'
)z=x+y;
elseif(op=='
)z=x-y;
*'
)z=x*y;
/'
)z=x/y;
%f%c%f=%f\n"
x,op,y,z);
∙使用switch语句实现
15
16
17
18
19
20
21
22
23
24
25
switch(op){
case'
:
z=x+y;
break;
z=x-y;
z=x*y;
z=x/y;
5-1猜比赛结果
charw;
ints;
for(w='
w<
D'
w++){
s=(w!
='
&
w!
C'
)+
(w=='
B'
||w=='
(!
));
if(s==1)printf("
%cisthewinner!
\n"
w);
5-2a多样例a+b
(1)
intn,i=0,a,b;
n);
while(n--){
%d%d"
a,&
b);
Case%d:
%d\n"
++i,a+b);
5-2b多样例a+b
(2)
while(scanf("
b),a!
=0||b!
=0){
5-2c多样例a+b(3)
b)==2){
5-3求n个数的和
intn,s=0,t;
t);
s+=t;
s);
5-4求n个数中的最大值
intn,max,t;
max);
while(--n){
if(max<
t)max=t;
max);
5-5最大公约数
inta,b,r;
while(b){
r=a%b;
a=b;
b=r;
a);
5-6有多少个1
intn,b,c;
n,&
for(c=0;
n;
n/=b)if(n%b==1)c++;
c);
5-7丑数
intn,i;
for(i=2;
i<
=7;
i++){
if(i==4||i==6)continue;
while(n%i==0)n/=i;
if(n==1)break;
if(n==1)puts("
5-8素数的判定
∙根据定义的最朴素判定(太慢)
if(n<
2){
puts("
n&
n%i;
i++);
if(i==n)puts("
∙常数级别优化(仍然太慢)
if(n==2){
2||n%2==0){
for(i=3;
i+=2);
if(i>
=n)puts("
∙再次优化,只枚举到sqrt(n)
intn,i,k;
k=sqrt(n);
=k&
k)puts("
5-9字母塔
charc,t;
inti,j,n;
while((c=getchar())!
=EOF){
getchar();
//readreturnkey
n=c-'
+1;
for(i=0;
for(j=0;
j<
n-i-1;
j++)putchar('
'
for(j=0,t='
i+1;
j++,t++)putchar(t);
for(j=0,t-=2;
i;
j++,t--)putchar(t);
putchar('
\n'
6-1计算GPA
#defineN10
intc[N],g[N],i,n;
doublesg=0.0,sc=0.0,gp;
i++)scanf("
c+i);
g+i);
i++)sc+=c[i];
if(g[i]>
=90)gp=4.0;
elseif(g[i]>
=80)gp=3.0;
=70)gp=2.0;
=60)gp=1.0;
elsegp=0.0;
sg+=gp*c[i];
%.3f\n"
sg/sc);
6-ex1区间最大值
intn,Q,x[1000],i,a,b,max;
Q);
x+i);
while(Q--){
for(max=0,i=a;
=b;
if(x[i]>
max)max=x[i];
6-2求素数表
∙朴素筛法
#defineN1000001
inta[N]={1,1};
intcnt;
intprime[N];
inti,j;
//getallprimesbysievealgorithm
N;
if(!
a[i]){
prime[cnt++]=i;
for(j=i+i;
j+=i)a[j]=1;
//printallprimesbetween1andN,10primesperline.
cnt;
prime[i]);
if((i+1)%10==0||i==cnt-1)putchar('
elseputchar('
∙优化后的筛法
#defineSQRT_N1000
//getallprimesbyO(NloglogN)sievealgorithm
=SQRT_N;
for(j=i*i;
i++)if(!
a[i])prime[cnt++]=i;
6-3素数个数
intg[N]={0};
inti,j,L,R;
j+=i)a[j]
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语音 课堂 代码 笔记