1.静态的变量(包括数组)省略初始化时,其值默认为零。
2.//冒泡排序法示例
#include<stdio.h>
# define N 6
int main()
{
int i,j,t=0,a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=0;i<N;i++)//一共排6次(实际只要5次?)全部定位好。
for(j=0;j<N-i-1;j++)
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}//逐一比对大小,如果大则搬运他到下一个位置继续循环,如果小于,则直接用下一个数据开始搬运,直到最后的最大数据定位至最右端(升序);
//逐一定位,故j<N-i-1,逐一占位了。
for(i=0;i<N;i++)
printf("%d ",a[i]);//输出数据,完成排序.
return 0;
}
3.//折中(二分)查找法
#include<stdio.h>
int main()
{
int a[12]={3,5,8,9,14,17,19,21,23,26,28,32};
int x,i,top,bot,mid,find;
scanf("%d",&x);//输入要查找的数
top=11; //足额的首次查找范围的上界
bot=0; //确定...下界
find=0; //找到的标志值
do
{
mid=(top+bot)/2;//中值点
if(x==a[mid])
{
printf("found: %d,it is a[%d].\n",x,mid);
find=1; //标志找到
break;
}
else if(x<a[mid])
top=mid-1; //x小于中间数,修改上界
else
bot=mid+1; //x大于Mid,修改下界;
}while(top<=bot);
if(!find)
printf("%d not found.\n",x);
return 0;
}
4.实验课错题总结
就看错题和典题
练习一
1-2 T,字符也可以进行运算,以ASC码值储存;
1-4
输入输出题,T,对了,true
1-5
c语言程序区分大小写的(一般)
1-6
x=2;y=x+3/2;
则y=2+1=3;
T
运算是自动向更高级的datatype转换的;
(自动转换规则,不同datatype类型一起运算时,低级自动向高级转换。占内存少的自动向占内存多的转换。)
2-2
不可连续等于,a=b=c,是错的
只有整数可以取余
《红笔》x=25%5.0是错误的表达;
会自动转换为浮点型,就无取余一说了,不是整数
scanf()函数在读不到数据时返回EOF;
2-12
d,字符类型,字符只能单个用单引号,字符串用双引号且是零个(;空字符)或者多个。
《红笔》“%+-010.2lf”
带符号,左对齐,空格补0,域宽10,保留2位小数,双精度浮点型
"金额: %012.2lf 元\n"
练习二
1-3,1-4
输入输出的datatype和格式字符必须要对应
不然会出错;