注意这不是算法,这不是算法,这不是算法!!! 我就是为了不浪费那三百块钱,然后达到轩哥所说的有基本的编程能力,so,,,从hello world开始学起呗~
小知识点笔记:
1.输出特殊字符要注意!!
需要转义表达的特殊字符包括:
\a 响铃(BEL) 007
\b 退格(BS) 008
\f 换页(FF) 012
\n 换行(LF) 010
\r 回车(CR) 013
\t 水平制表(HT) 009
\v 垂直制表(VT) 011
\\ 反斜杠 092
\? 问号字符 063
\' 单引号字符 039
例:如果要打印以下句子: "\ is called 'backslash'."
printf("\"\\ is called \'backslash\'.\""); 或者 printf("\"\\ is called 'backslash'.\"");
打印: printf("Hello, world!\n");
printf("printf(\"Hello,world!\\n\");");
2.强制进制转换:
十进制转化为八进制:%o;
十进制转化为十六进制:%X;
任何进制转化为十进制:直接转化为int型,
八进制的表示 int a = 0x12345;
例1:判断是否为闰年,求天数
int main()
{
int year, month, day, n;
scanf("%d%d%d",&year,&month,&day);
int number(int yearm, int mouth, int day);/*int 型函数的引入*/
n = number(year, month, day);
printf("%d\n",n);
}
int leap(int a)
{
if(a % 4 == 0 && a % 100 != 0 || a % 100 == 0)
return 1;/*是闰年返回 1*/
else
return 0;/*不是闰年返回 0*/
}
int number(int year, int m, int d)
{
int sum = 0, i, j, k, a[12] =
{
31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
int b[12] =
{
31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
};
if(leap(year) == 1)
for(i = 0; i < m-1; i++)
sum += b[i];
else
for(i = 0; i < m - 1; i++)
sum += a[i];
sum += d;
return sum;
}
例2:百元买百鸡,公鸡5元一只,母鸡三元一只,小鸡三只一元
int main()
{
int ro, hen, chick;
for(ro = 0; ro <= 20; ro ++)/*公鸡的范围,*/
for(hen = 0; hen <= 33; hen ++)
for(chick = 3; chick <= 99; chick ++)
if(5 * ro + 3 * hen + chick/3 == 100)
if(chick % 3 == 0)
if(ro + hen + chick == 100)
printf("%d %d %d\n",ro, hen, chick);
return 0;
}
例3:命题判断问题,新人配对:已知A不与X结婚,C不与 X结婚, C不与Z结婚
新郎 A B C
新娘 X Y Z
用a != 1 表示A不与X结婚
int main()
{
int a,b, c;
for(a = 1; a <= 3; a ++)/*穷举a的所有可能*/
for(b = 1; b <= 3; b ++)
for(c = 1; c <= 3; c ++)
{
if(a != 1 && c != 1 && c != 3 && a != b && a != c&& b != c)
{
printf("%c将嫁给A\n",'X' + a - 1);
printf("%c将嫁给B\n",'X' + b - 1);
printf("%c将嫁给B\n",'X' + c - 1);
}
}
return 0;
}
排序算法归纳:
1.直接插入排序: