快速入门
摘自《算法笔记》,胡凡主编
1.%md,可以使不足m位的int形变量以m位进行右对齐输出,其中高位用空格补齐;如果变量本身超过m位,则保持原样。
#include<stdio.h>
int main(){
int a = 123, b = 3456789;
printf("%5d\n", a);
printf("%5d\n", b);
return 0;
}
输出结果:
123
3456789
2.%0md,与上述不同的是不足m位时,用0补全,而非空格。
3.%.mf,让浮点数保留m位小数输出,采用“四舍六如五成双”规则。
4.输入、输出字符
getchar和putchar,在某些scanf函数使用不便的情况下使用,输入或输出单个字符。
#include<stdio.h>
int main(){
char c1,c2,c3;
c1 = getchar();
getchar();
c2 = getchar();
c3 = getchar();
putchar(c1);
putchar(c2);
putchar(c3);
return 0;
}
若输入为:
abcd
则输出为
acd
当然也可以使用gets和puts进行输入输出整个字符串,gets识别"\n"作为一行字符串的结束。
5.break和continue语句
区分:break跳出整个循环体;而continue只是跳出改循环体的本次轮回,进入下一次轮回;
#include<stdio.h>
int main(){
int sum1 = 0, sum2 = 0;
for(int i = 1; i <= 5; i++){
if(i % 2 == 1) break; //因为第一个数为1,直接跳出整个for循环,因此sum1结果为0
sum1 += i;
}
for( i = 1; i <= 5; i++){
if(i % 2 == 1) continue;
sum2 += i;
}
printf("%d\n%d\n",sum1, sum2);
return 0;
}
输出结果
0
6
6.指针变量中*表示取出地址中存放的数,&表示取该变量地址。
7.string.h头文件
strlen(字符数组) //得到数组中第一个\0前的字符的个数
strcmp(字符数组1,字符数组2) //按字典序排序
strcpy(字符数组1,字符数组2) //把字符数组2赋值给字符数组1
strcat(字符数组1,字符数组2) //把字符数组2接到字符数组1后面
8.sscanf(str, "%d", &n) //把字符数组str的内容以"%d"的形式写到n中
sprintf(str, "%d", n) //把n以"%d"的格式写到str字符数组str中
9.二位数组作为形参时,第二个方括号里面必须为一确定整数。
10.函数递归
#include<stdio.h>
int F(int n){
if(n == 0) return 1;
else return F(n - 1) * n;
}
int main(){
int n ;
scanf("%d", &n);
printf("%d",F(n));
return 0;
}