c语言--功能是将a所指数组重的内容进行逆置

来源:百度知道 编辑:UC知道 时间:2024/05/06 10:56:47
功能是将a所指数组重的内容进行逆置
31
以下程序中函数sort的功能是对a所指数组重的数据进行由大到小的排序
void sort(int a[], int n) {int i,j,t;
for(i=0; i<n-1;i++) for(j=i+1;j<n;j++)
if(a[i]<a[j]) {t=a[i];a[i]=a[j];a[j]=t;} }
main() {int aa[10]={1,2,3,4,5,6,7,8,9,10},i;
sort(&aa[3],5); for(i=0;i<10;i++) printf("%d,",aa[i];printf("\n");}

程序运行后输出的结果是
1,2,3,4,5,6,7,8,9,10
为什么?
void sort(int a[], 是什么意思
{int aa[10]={1,2,3,4,5,6,7,8,9,10},是什么意思
sort(&aa[3],5); 是什么意思

33有以下程序
main() {char a[]={'a','b','c','d','e','f','g','h','\0',}; int i,j;
i=sizeof(a); j=strlen(a);printf("%d,%D\n",i,j);}

输出结果:9,8
char a[]={'a','b','c','d','e','f','g','h','\0',}; 是什么意思
i=sizeof(a);是什么意思
j=strlen(a);是什么意思
34

以下程序中的函数reverse的功能是将

第一个程序的错误太多,根本不会是那个结果。
main() {char a[]={'a','b','c','d','e','f','g','h','\0',}; int i,j;
i=sizeof(a); j=strlen(a);printf("%d,%D\n",i,j);}

输出结果:9,8
char a[]={'a','b','c','d','e','f','g','h','\0',}; 是什么意思
i=sizeof(a);是求数组a在内存中的字节数,字符串数组会在定义时在后面加一个'\0'表示结束符。你定义时占了八个字节,再加一个'\0'即9个字节。所以结果是9;

j=strlen(a);是求字符串长度,这长度不包括最后那个系统加上去的'/0',也就是8个.

以下程序中的函数reverse的功能是将a所指数组重的内容进行逆置
void reverse(int a[], int n) //定义倒置函数。它有两个参数
{int i,t; 定义两个整数变量。
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} /*两行实现把数组a[]的前面n位倒置*/
}
main()
{int b[10]={1,2,3,4,5,6,7,8,9,10};// 定义数组;
int i,s=0;
reverse(b,8);// 调用函数reverse;把数组从第一位到第八位倒置;即倒置后数组b成了{8,7,6,5,4,3,2,1,9,10};
for(i=6;i<10;i++)
s+=b[i