我的c错题本
Posted 繁凡さん
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我的c错题本相关的知识,希望对你有一定的参考价值。
我的错题总结
萌新报到!菜鸡萌新的错题总结刚刚踏上ACM之旅,在博客上记录一些知识,方便复习,如果有错误,烦请各位大佬评论指正,非常感谢!!
老司机们带带我
1.
/普通年:能被4整除但不能被100整除的年份为普通闰年。
世纪年:能被400整除的为世纪闰年。/
2.
单纯的&1是没有意义的 而且是非法的
但是一个变量 a&1 是合法的 代表的意思是a和1做二进制的且运算 即看a的最后边那一位是不是1
是1的话(奇数) 返回1 否则返回0
那是不是就是判断奇偶呢?等效于a%2==0/1,那两种写法有什么区别?谢谢
是的 两者目的一样 但是a%2的效率要低一些 没有&运算快
3.
goto语句也只限于一个函数内,不能进行函数间的跳转。在c语言中,进行函数间的跳转使用setjmp和longjmp函数。
4.
n=n*8+*p-‘0’;指针p一位一位的往后走
*p-'0’就是将字符变成数字,例如123 当 p指向1的时候,*p = ‘1’ ,而‘1’-‘0’就是两者之间的ASCII码进行相减,
结果就是1了。
所以
n = 0*8+1=1
n=1*8+2=10
n=10*8+3=83
n=n*2+*p-'0';//二进制转十进制
如有输入多组值的时候,注意每次开始新的一组时值要清零
#include<stdio.h>
#include<math.h>
int main()
int i,j;
while(scanf("%d%d",&i,&j)!=EOF)
int n=0,x=0;/*注意这里要清零*/
for(i;i<=j;i++)
if(i&1)
n+=(int)(pow(i,3));
else
x+=(int)(pow(i,2));
printf("%d %d\\n",x,n);
return 0;
if(m > n) // 保证m<=n,以便控制循环
i = m;
m = n;
n = i;
像这道题,一定要注意保证m<=n,要多写这一步
6.
%f代表单精度浮点型数据(float),%lf代表双精度浮点型数据(double)。
7.
7.1// 计算立方和:从个位、十位到百位分别计算求和
int sum = 0;
t = i;
while(t)
int t2 = t % 10;
sum += t2 * t2 * t2;
t /= 10; // 去掉个位
//取每一位的数
7.2//
输出结果(没有水仙花数)和换行
if(count == 0)
printf("no");
printf("\\n");
//如果有要求没有的时候输出no这种要再定义一个变量用于储存目标的个数
8.如果遇见要求求得不等式的前n项和,用for循环并用if来限定好条件;
9.
如果进入一个函数没有达到要求未运行则return 的值默认为-1
10.
如果要求有单位,如5w即为50000
那么应该这样:
scanf("%d%c ",&a,&aa);
if(aa=='w')`在这里插入代码片`
a*=10000;
.
main’必须返回‘int’ c/c++的main函数必须是int类型,而且最后要return 0。这不仅对洛谷其他题目有效,而且也是noip/noi比赛的要求!
多组输出可以这样:
printf(" ********\\n"
" ************\\n"
"########################################## ############\\n" );
if(n%a[i][0]!=0)
cnt[i]=n/a[i][0]+1; //除完不为零则下面除完要加一(int只舍不入)
s
-=c-300等价于s=s+300-c
13.
x=i;
if(x<min)
min=x;//如果要求输出的是最小的那么在循环的时候要注意这一点,声明一个min用于储存这一最小值用(if)
h+=s/100;
s%=100;//h用于接收s中百位以上的数,用%100即可得到s的后两位
#include<time.h>
printf(Time used="%.2f\\n",(double)clock()/CLOCKS_PER_SEC);
//求运行时间
以上是关于我的c错题本的主要内容,如果未能解决你的问题,请参考以下文章