ACM初学笔记

 

1.求回文数
a=a*10+b%10;  
b=b/10;
 

 

2.简便的将一串没有空格的数字赋给数组
scanf("%d",&n);
a[i++]=n;

 

 

3.自动打字(在测试程序的时候不用一个一个的敲案例)
freopen("in.txt","r",stdin);

输出到TXT文档里

freopen("out.txt", "w", stdout);

代码的位置:在主函数中声明下面。

 

 

 

4.pow的注意事项

pow(3,2)+0.1;
pow是double型 (3.0的2.0次幂)计算出可能为8.999999999 所以整型输出的时候可能会是8而不是9 需要加一个很小的数。

 

 

5.空字符

%*c是空白字符可以其到getchar();的作用
吸收scanf最后输入的回车

 


6.scanf有缓存的说法,清除缓存 fflush(stdin);

 


7.在整形数组的下标中嵌入一个字符数组
char buf[100011];
int num[26]={0};
for(i=0;i<len;i++)
        {
           num[buf[i]-'a']++;
        }
数组buf是字符数组,而num是一个整形数组
num[buf[i]]本来应该是类似于num[a]这样的,但是在buf[i]后面减去了一个'a'这样【buf[i]-'a'】
就变成了一个数字(ASCII码),当i=1的时候如果b[1]=a;则 num[buf[1]-'a']++;等价于a[0]++;

 

 

8.如果求一个数a的n次幂的后m位数是什么
则只要每次自乘数a的后m位就行了
这样在求5678的1000次幂的时候就不会hold不住了。。

 

 


9.n个点逆时针排列后所围城的多边形面积公式
要以第一个点为原始点(以那个点作为原点做坐标轴)需要之后输入的点每个x,y对应相减
面积S=0.5[(x1y2-x2y1)+(x2y3-x3y2)+……+(xn-2yn-1-xn-1yn-2)];

 

 

10.定义一个二维数组来储存字符串
第一个是行数
第二个是每个字符串中字符的数量
scanf("%s",a[i]);其中a[i]为数组的首地址代表输出那一行,而那行储存的就是一组字符串

 

 

 

 

 

你可能感兴趣的:(c,测试,文档)