1、CC+学习总结笔记#include #define N 20main() char sNN,i,j,k,m; if(N%2=0) m=N/2; else m=N/2+1; for(k=0;km;k+) for(i=k;iN-k;i+) for(j=k;jN-k;j+) if(i=k|i=N-k-1|j=k|j=N-k-1) sij=A+k; for(i=0;iN;i+) for(j=0;jN;j+) printf(%c ,sij); printf(n); 求负数平均数:#include main() int a7=1,-2,9,-4,-7,2,0,i,k=0;float s=0.0; for(
2、i=0;i7;i+) printf(%d ,ai);printf(n);for(i=0;ai!=0;i+)if(ai0)s+=ai;k+;printf(%6.4f,s/k); 小写改大写#include main() int i;char a20; gets(a); for(i=0;ai!=0;i+) if(ai=a&ai=z) ai=ai-32; puts(a);第13套题(必须是main函数在上面,fun函数段再下面,要不然会出错)#include long fun(int a,int n)int i;long s,t=0; for(i=0;in;i+) t=t*10+a; s=t; fo
3、r(i=1;in;i+) t=t/10; s=s-t; return s;main () int a, n ; scanf( %d%d, &a, &n ) ; printf(a=%d,n=%d,a,n); printf(n); printf( %ldn, fun ( a, n ) ); /*必须是ld,不能是l*/解法二(不调用子函数)#include main () int a, n,i ;long s,t=0; scanf( %d%d, &a, &n ) ; printf(a=%d,n=%d,a,n); printf(n); for(i=0;in;i+) t=t*10+a; s=t; fo
4、r(i=1;in;i+) t=t/10; s=s-t; printf(%ldn,s);第18套#include #include /*该句必须写上去,要不然函数中的cos,fabs函数将无来源调用,这一点要非常注意*/main () double x0,x1=0.0; do x0=x1; x1=cos(x0); while(fabs(x0-x1)=1e-6); printf(root=%fn,x1);注意区别,后者为正确结果第30套删除前导*号解法一(调用子函数)#include void fun(char *a)char *p=a,*s;while(*p=*) p+;for(s=p;*s!=
5、0;s+) *a+=*s;*a=0;main () char a80; /*此处不能定义为*a*/ gets(a); fun(a); /*此处不得直接写成puts(fun(a);必须得分两步写*/ puts(a); 解法二(未调用子函数)#include #include main () int i,k=0;char s20,*p,*r; gets(s); p=s; while(*p=*) p+; for(r=p;*r!=0;r+) sk+=*r; sk=0; puts(s); 循环左移#include #include main() int i,j,n,m;char a20,t; gets(
6、a); n=strlen(a); /*要用到strlen函数的话就要用到字符串库函数*/ scanf(%d,&m); for(i=0;im;i+) t=a0; for(j=0;jn-1;j+) aj=aj+1; an-1=t; puts(a);注意必须是先输入字符串数组,再输入m值二维矩阵转置:#include #include #define M 3 /*这一句是在main函数之前*/main() int aMM=1,2,2,4,1,6,1,3,2,bMM,i,j,k; printf(before motivated:n); for(i=0;iM;i+) for(j=0;jM;j+) pri
7、ntf(%d ,aij); printf(n); /*注意大花括号的位置,以及printf(“n”);这一句的位置,每一行结尾转行*/ for(i=0;iM;i+) for(j=0;jM;j+) bij=aij+aji; printf(after motivated:n); for(i=0;iM;i+) for(j=0;jM;j+) printf(%d ,bij); printf(n); #include #include main () int i,n,k=0;char s20,*p; gets(s); n=strlen(s); p=s; for(i=0;in;i+) if(pi%2=0|i
8、%2!=0) sk+=pi; sk=0; puts(s); 删除字符串中某些字符:解法一#include #include main () int i,n,k=0;char s20,*p; gets(s); n=strlen(s); p=s; for(i=0;in;i+) if(pi%2!=0&i%2=0) ; else sk+=pi; sk=0; puts(s); 解法二(主要是红色字体部分内容不同)#include #include main () int i,n,k=0;char s20,*p; gets(s); n=strlen(s); p=s; for(i=0;in;i+) if(p
9、i%2=0|i%2!=0) sk+=pi; sk=0; puts(s); 数组前m位输出#include main () int s7=1,2,3,4,5,6,7,i,m; for(i=0;i7;i+) printf(%d ,si); printf(n); scanf(%d,&m); for(i=0;im;i+) printf(%d ,si); printf(n);求1-1/2+1/3-1/4+求前m项的和#include main () int i,m,fg=1;double s=0.0,s1; scanf(%d,&m); for(i=1;i=m;i+) s1=i*fg; fg=fg*(-1
10、); s+=1.0/s1; printf(%2.4fn,s); /*2.4前面的数字2代表包括总位数,前面的数字只要不超过6就能得到正确结果,后面的数字4代表小数点后的位数,即保留几位小数,此处与printf(%.4fn,s);效果一样*/ 注意这个结果不是顶行输出的,与8.4前面的数字8有关判断几组数据的大小#include #include main () int i,a,b,n; scanf(%d,&n); for(i=0;ib) printf(Text %d:n,i+1); if(ab) printf(Text %d:n,i+1); if(a=b) printf(Text %d:=n,
11、i+1); 第一套选择题解法一(答案)#include #include main ( ) int i=2,fg=1;double s=0.0,s1=0.75,t; while(s11e-3) s=s+fg*s1; t=2*i; s1=(t+1)/(t*t); fg=fg*(-1); i+; printf(the result is:%fn,s);解法二(为什么有这种差别呢?求解答)#include #include main ( ) int i=1,fg=1;double s=0.0,s1,t; do t=2*i; s1=(t+1)/(t*t); s=s+fg*s1; fg=fg*(-1);
12、 i+; while(s11e-3); printf(the result is:%fn,s);解法三(带子函数段)#include #include double fun(double e) int i=1,fg=1;double s=0.0,s1,t; do t=2*i; s1=(t+1)/(t*t); s=s+fg*s1; fg=fg*(-1); i+; while(s1e); return s;main () double e; scanf(%le,&e); /*此处红色字体%le不能写成%f,这里scanf函数与printf函数使用规则不同,scanf函数读取double型数据是用%
13、le ,printf函数显示double型数据是用%f ,注意区别*/ printf(%fn,fun(e);【实现十进制到二进制的转换】:#include main ()int k=0,i;long t,s1;char p20,ch;scanf(%ld,&t);do s1=t%2; t=t/2; pk+=s1+0; while(t0);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);【二进制到十进制的转换】:#include #include main ()int i,j,n,k;long t=0;char s20;gets(
14、s);n=strlen(s);for(i=0;in;i+) k=1; for(j=1;j=n-1-i;j+) k=k*2; t=t+k*(si-0);printf(%ldn,t);【实现16进制到10进制的转换】:#include #include main ()int i,j,n,k;long t=0;char s20;gets(s);n=strlen(s);for(i=0;in;i+)k=1;for(j=1;j=0&si=A&si=G)t=t+k*(si-55); /*例如16进制中的A代表10进制中的10,而字符A对应的ASCII值为65,其他的B一直到F都可以依此类推*/printf(
15、%ldn,t);【实现10进制到16进制的转换】:#include #include main ()int k=0,i;long t,s1;char p20,ch;scanf(%ld,&t);do s1=t%16; t=t/16; if(s1=1&s1=10&s10);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);【2进制转化为8进制】:思路:2进制10进制8进制#include #include main ()int i,j,n,k,m=0;long t=0,s1;char s20,p20,ch;gets(s);n=str
16、len(s);for(i=0;in;i+) k=1; for(j=1;j0);pm=0;for(i=0;im/2;i+) /*该for循环用于倒序输出*/ ch=pi; pi=pm-1-i; pm-1-i=ch;puts(p);【2进制转化为16进制】:思路与2进制转化为8进制相似#include #include main ()int i,j,n,k,m=0;long t=0,s1;char s20,p20,ch;gets(s);n=strlen(s);for(i=0;in;i+) k=1; for(j=1;j=1&s1=10&s10);pm=0;for(i=0;im/2;i+) /*该fo
17、r循环用于倒序输出*/ ch=pi; pi=pm-1-i; pm-1-i=ch;puts(p);【从母字符串中查找子字符串的个数】:解法一#include #include main () int i,j,k=0,n1,n2;char s100,p100,q100; gets(s); gets(p); n1=strlen(s); n2=strlen(p); for(i=0;in1;i+) for(j=0;jn2;j+) qj=si+j; /*动态保存字符串数组q,以便与子字符串p比较*/ qn2=0; if(strcmp(q,p)=0) k+; printf(%dn,k);解法二(注意首先定义
18、字符串s,p的长度要足够长,如定义为100。若定义为20,当从输入设备输入的字符串的长度超过20的时候,会出现错误)#include #include main () int i,j,k=0, tag,n1,n2;char s100,p100; gets(s); gets(p); n1=strlen(s); n2=strlen(p); for(i=0;in1;i+) tag=1; for(j=0;jn2;j+) if(pj!=si+j) tag=0; if(tag=1) k+; printf(%dn,k);【自己研究的小课题】#include #include void fun1(char s
19、1100) char *s=s1,*p; while(*s=*) s+; for(p=s;*p!=0;p+) *s1+=*p; *s1=0;void fun2(char s2100) int k=0;char *s=s2,*p; while(*s!=0) s+; s-; while(*s=*) s-; *(s+1)=0;main () int i;char s1100,s2100; printf(Before transfered(s1):); gets(s1); printf(Before transfered(s2):); gets(s2); fun1(s1); fun2(s2); pri
20、ntf(After transfered(s1):); puts(s1); printf(After transfered(s2):); puts(s2); printf(After linked(s1+s2):); puts(strcat(s1,s2);【自己研究小课题】将Excel中的列标变换为10进制数:AAA703#include #include main () int i,j,n;long s1=0,k;char s100; gets(s); n=strlen(s); for(i=0;in;i+) k=1; for(j=1;j=n-1-i;j+) k=k*26; s1=s1+(si
21、-64)*k; printf(%ldn,s1);703AAA(当输入的数字为26的倍数时,会出现错误,其他的某些情况也会出现错误,有待进一步考察)#include #include main ()int k=0,i;long t,s,s1;char p20,ch;scanf(%ld,&t);do s1=t%26; t=t/26; pk+=s1+64; while(t0);pk=0;for(i=0;ik/2;i+) ch=pi; pi=pk-1-i; pk-1-i=ch;puts(p);求最大公约数:(1也可以是最大公约数,而且注意运行程序时最好切换输入法为英文输入法,要不然会出现死循环)#in
22、clude #include main ()int a,b,i,k=0,s100; printf(请输入两个正整数:);scanf(%d,%d,&a,&b);while(a=0|b=0)printf(请重新输入两个正整数:);scanf(%d,%d,&a,&b);for(i=1;i=a&i=b;i+) if(a%i=0&b%i=0) sk+=i;printf(最大公约数:%dn,sk-1); /*该数组最后一个元素必为最大公约数*/求最小公倍数:#include #include main ()int i,a,b,t;printf(请输入两个正整数:);scanf(%d,%d,&a,&b);while(a=0|b=0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1