#includestdio.h
成都创新互联公司是一家集网站建设,嫩江企业网站建设,嫩江品牌网站建设,网站定制,嫩江网站建设报价,网络营销,网络优化,嫩江网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
int main()
{ void sort(int array[],int n);
int a[100],n,i;
scanf("%d",n);
for(i=0; in; i++)
scanf("%d",a[i]);
sort(a,n);
printf("the sorted array:\n");
for(i=0; in; i++)
printf("%5d",a[i]);
printf("\n");
return 0;
}
void sort(int a[],int n)
{ int i,j,k,t;
for(i=0; in-1; i++)
{ k=i;
for(j=i+1; jn; j++)
if(a[j]a[k])
k=j;
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
首先要明白,sizeof不是函数,而是操作符;strlen是函数。
操作符sizeof用来判断对象、类型所占用的内存空间的字节数,strlen是计算一个字符串以字节计的长度。如:sizeof(int)、sizeof(double)、sizeof(char)等是合法的,可以计算出int、double、char这些类型所占用的字节数分别是4、8、1,而用strlen则是非法的。再如:若有char
a[20]="123";,那么,strlen(a)的结果是3,而sizeof(a)的结果是20;前者是字符串“123”的长度,后者是为数组a分配的内存空间。还有:当计算一个指向字符串的指针时,sizeof得到的是指针本身的长度即固定为4(32位机),而strlen得到的是指针指向的字符串的长度。如:char
a[20]="1234567",*p=a;,则,sizeof(p)=4,而strlen(p)=7。似乎复杂了点。记住一个原则就好判断:操作符sizeof用来计算系统为对象本身分配的空间(以字节计),函数strlen用来计算字符串的长度(以字节计)。
#include stdio.h
void sort1(int a[],int n)
{int i,j,t;
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
if(a[j]a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
void sort2(int a[],int n)
{int i,j,t;
for(i=0;in-1;i++)
for(j=0;jn-1-i;j++)
if(a[j]a[j+1])
{t=a[j];a[j]=a[j+1];a[j+1]=t;}
}
int main()
{int i,a[10];
for(i=0;i10;i++)
scanf("%d",a[i]);
printf("\n");
sort1(a,10);
for(i=0;i10;i++)
printf("%d ",a[i]);
printf("\n\n");
sort2(a,10);
for(i=0;i10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#include stdio.h
void sort(int a[], int n) {//选择排序
int i,j,k,t;
for(i = 0; i n - 1; ++i) {
k = i;
for(j = k + 1; j n; ++j) {
if(a[k] a[j]) k = j;
}
if(k != i) {
t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
int main() {
int a[] = {21,16,30,21,8,19,33,26,28,27,24,50,13,12};
int i,n = sizeof(a)/sizeof(a[0]);
printf("排序前:\n");
for(i = 0; i n; ++i)
printf("%d ",a[i]);
printf("\n");
sort(a,n);
printf("排序后:\n");
for(i = 0; i n; ++i)
printf("%d ",a[i]);
printf("\n");
return 0;
}
#includestdio.h
float sort(float a[],int n)
{
float t;
for(int i=0;in;i++)
for(int j=0;jn-1-i;j++)
if(a[j]a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
for(int i=0;in;i++)
printf("%.f ",a[i]);
}
int main()
{
float a[20]={12,0,63,8,13,101,123,15,77,65,68,156,15,28,31,62,56,60,22,23};
sort(a,20);//引用
return 0;
}