学习总结--《算法笔记》(c语言版)

快速入门

摘自《算法笔记》,胡凡主编
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

当然也可以使用getsputs进行输入输出整个字符串,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;
}

猜你喜欢

转载自blog.csdn.net/Inniss_/article/details/85722947