CC++学习总结笔记文档格式.docx
- 文档编号:22537992
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:245
- 大小:143.97KB
CC++学习总结笔记文档格式.docx
《CC++学习总结笔记文档格式.docx》由会员分享,可在线阅读,更多相关《CC++学习总结笔记文档格式.docx(245页珍藏版)》请在冰豆网上搜索。
floats=0.0;
7;
%d"
a[i]);
printf("
for(i=0;
a[i]!
=0;
if(a[i]<
0)
{s+=a[i];
k++;
}
%6.4f"
s/k);
小写改大写
inti;
chara[20];
gets(a);
='
\0'
;
if(a[i]>
a'
&
a[i]<
z'
)
a[i]=a[i]-32;
puts(a);
第13套题(必须是main函数在上面,fun函数段再下面,要不然会出错)
longfun(inta,intn)
{inti;
longs,t=0;
n;
t=t*10+a;
s=t;
for(i=1;
t=t/10;
s=s-t;
}
returns;
main()
inta,n;
scanf("
%d%d"
&
a,&
n);
printf("
a=%d,n=%d"
a,n);
printf("
%ld\n"
fun(a,n));
/*必须是ld,不能是l*/
解法二(不调用子函数)
inta,n,i;
s);
第18套
math.h>
/*该句必须写上去,要不然函数中的cos,fabs函数将无来源调用,这一点要非常注意*/
{
doublex0,x1=0.0;
do
x0=x1;
x1=cos(x0);
}while(fabs(x0-x1)>
=1e-6);
root=%f\n"
x1);
注意区别,后者为正确结果
第30套——删除前导*号
解法一(调用子函数)
voidfun(char*a)
char*p=a,*s;
while(*p=='
*'
p++;
for(s=p;
*s!
s++)
*a++=*s;
*a='
chara[80];
/*此处不能定义为*a*/
fun(a);
/*此处不得直接写成puts(fun(a));
必须得分两步写*/
puts(a);
解法二(未调用子函数)
string.h>
inti,k=0;
chars[20],*p,*r;
gets(s);
p=s;
while(*p=='
p++;
for(r=p;
*r!
r++)
s[k++]=*r;
s[k]='
puts(s);
循环左移
inti,j,n,m;
chara[20],t;
n=strlen(a);
/*要用到strlen函数的话就要用到字符串库函数*/
scanf("
%d"
&
m);
{t=a[0];
for(j=0;
n-1;
a[j]=a[j+1];
a[n-1]=t;
注意必须是先输入字符串数组,再输入m值
二维矩阵转置:
#defineM3/*这一句是在main函数之前*/
inta[M][M]={{1,2,2},{4,1,6},{1,3,2}},b[M][M],i,j,k;
beforemotivated:
M;
{for(j=0;
a[i][j]);
/*注意大花括号的位置,以及printf(“\n”);
这一句的位置,每一行结尾转行*/
}
b[i][j]=a[i][j]+a[j][i];
aftermotivated:
b[i][j]);
inti,n,k=0;
chars[20],*p;
n=strlen(s);
if(p[i]%2==0||i%2!
=0)
s[k++]=p[i];
删除字符串中某些字符:
解法一
{if(p[i]%2!
=0&
i%2==0);
{s[k++]=p[i];
解法二(主要是红色字体部分内容不同)
{if(p[i]%2==0||i%2!
=0)
s[k++]=p[i];
数组前m位输出
ints[7]={1,2,3,4,5,6,7},i,m;
s[i]);
求1-1/2+1/3-1/4+·
·
求前m项的和
inti,m,fg=1;
doubles=0.0,s1;
=m;
s1=i*fg;
fg=fg*(-1);
s+=1.0/s1;
%2.4f\n"
/*2.4前面的数字2代表包括总位数,前面的数字只要不超过6就能得到正确结果,后面的数字4代表小数点后的位数,即保留几位小数,此处与printf("
%.4f\n"
效果一样*/
注意这个结果不是顶行输出的,与8.4前面的数字8有关
判断几组数据的大小
inti,a,b,n;
n);
%d%d"
a,&
b);
if(a>
b)printf("
Text%d:
>
i+1);
if(a<
<
if(a==b)printf("
=\n"
第一套选择题
解法一(答案)
main()
inti=2,fg=1;
doubles=0.0,s1=0.75,t;
while(s1>
1e-3)
s=s+fg*s1;
t=2*i;
s1=(t+1)/(t*t);
i++;
theresultis:
%f\n"
解法二(为什么有这种差别呢?
求解答)
inti=1,fg=1;
doubles=0.0,s1,t;
{
1e-3);
解法三(带子函数段)
doublefun(doublee)
e);
doublee;
%le"
/*此处红色字体%le不能写成%f,这里scanf函数与printf函数使用规则不同,scanf函数读取double型数据是用%le,printf函数显示double型数据是用%f,注意区别*/
fun(e));
【实现十进制到二进制的转换】:
intk=0,i;
longt,s1;
charp[20],ch;
scanf("
%ld"
t);
do
s1=t%2;
t=t/2;
p[k++]=s1+'
0'
while(t>
0);
p[k]='
k/2;
i++)
ch=p[i];
p[i]=p[k-1-i];
p[k-1-i]=ch;
puts(p);
【二进制到十进制的转换】:
inti,j,n,k;
longt=0;
chars[20];
gets(s);
n=strlen(s);
k=1;
for(j=1;
=n-1-i;
k=k*2;
t=t+k*(s[i]-'
t);
【实现16进制到10进制的转换】:
k=1;
for(j=1;
k=k*16;
if(s[i]>
s[i]<
9'
t=t+k*(s[i]-'
G'
t=t+k*(s[i]-55);
/*例如16进制中的’A’代表10进制中的10,而字符’A’对应的ASCII值为65,其他的’B’…一直到’F’都可以依此类推*/
【实现10进制到16进制的转换】:
s1=t%16;
t=t/16;
if(s1>
=1&
s1<
=9)
=10&
=15)
p[k++]=s1+55;
【2进制转化为8进制】:
思路:
2进制→10进制→8进制
inti,j,n,k,m=0;
longt=0,s1;
chars[20],p[20],ch;
/*蓝色字体2如果变为8,则可以实现8进制到10进制的转换*/
s1=t%8;
/*这两句顺序不能颠倒,否则会导致结果错误,即必须是先求余,后求商如果是先求商后求余的话,即按照"
t=t/8;
s1=t%8"
的顺序执行,后一句中s1=t%8中的t已经改变*/
t=t/8;
p[m++]=s1+'
/*m用于统计二进制数的位数,在此二进制数是作为字符串的形式输出的*/
p[m]='
m/2;
i++)/*该for循环用于倒序输出*/
p[i]=p[m-1-i];
p[m-1-i]=ch;
【2进制转化为16进制】:
思路与2进制转化为8进制相似
t=t/16;
s1=t%16"
的顺序执行,后一句中s1=t%16中的t已经改变*/
p[m++]=s1+55;
i++)/*该for循环用于倒序输出*/
【从母字符串中查找子字符串的个数】:
inti,j,k=0,n1,n2;
chars[100],p[100],q[100];
gets(p);
n1=strlen(s);
n2=strlen(p);
n1;
n2;
q[j]=s[i+j];
/*动态保存字符串数组q,以便与子字符串p比较*/
q[n2]='
if(strcmp(q,p)==0)
k++;
%d\n"
k);
解法二(注意首先定义字符串s,p的长度要足够长,如定义为100。
若定义为20,当从输入设备输入的字符串的长度超过20的时候,会出现错误)
inti,j,k=0,tag,n1,n2;
chars[100],p[100];
tag=1;
if(p[j]!
=s[i+j])
tag=0;
if(tag==1)k++;
【自己研究的小课题】
voidfun1(chars1[100])
char*s=s1,*p;
while(*s=='
s++;
for(p=s;
*p!
p++)
*s1++=*p;
*s1='
voidfun2(chars2[100])
intk=0;
char*s=s2,*p;
while(*s!
s--;
*(s+1)='
chars1[100],s2[100];
Beforetransfered(s1):
"
gets(s1);
Beforetransfered(s2):
gets(s2);
fun1(s1);
fun2(s2);
Aftertransfered(s1):
puts(s1);
Aftertransfered(s2):
puts(s2);
Afterlinked(s1+s2):
puts(strcat(s1,s2));
【自己研究小课题】
将Excel中的列标变换为10进制数:
AAA→703
inti,j,n;
longs1=0,k;
chars[100];
{k=1;
k=k*26;
s1=s1+(s[i]-64)*k;
s1);
703→AAA(当输入的数字为26的倍数时,会出现错误,其他的某些情况也会出现错误,有待进一步考察)
longt,s,s1;
s1=t%26;
t=t/26;
p[k++]=s1+64;
求最大公约数:
(1也可以是最大公约数,而且注意运行程序时最好切换输入法为英文输入法,要不然会出现死循环)
inta,b,i,k=0,s[100];
请输入两个正整数:
%d,%d"
while(a<
=0||b<
请重新输入两个正整数:
for(i=1;
=a&
=b;
if(a%i==0&
b%i==0)
s[k++]=i;
最大公约数:
s[k-1]);
/*该数组最后一个元素必为最大公约数*/
求最小公倍数:
inti,a,b,t;
=0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CC 学习 总结 笔记