本文目录一览:
c语言数据结构5-6题,tail取表尾,head取表头,怎么取中间元素的
以第5题为例啊
tail(L) 得到的是(a,(u,t,w))
tail(tail(L)) 得到的就是((u,t,w))
head(tail(tail(L)))得到的就是(u,t,w)
tail(getHead(tail(tail(L))))得到的就是((t,w))
head(tail(head(tail(tail(L)))))得到的就是(t,w)
head(head(tail(head(tail(tail(L))))))得到的就是t.
用c语言编写给定10个元素,用选择法对中间8个元素进行降序排列
#include stdio.h
void SelectionSort(int *a, int n)
{
int i,j;
int max;
int t;
for(i = 1; i n-2; i ++)
{
int max = i;
for(j = i+1; j n-1; j ++)
if(a[max] a[j])
{
max = j;
}
t = a[max];
a[max] = a[i];
a[i] = t;
}
}
int main(void)
{
int i;
int a[10] = {-9,8,7,6,-5,4,3,2,-1,0};
SelectionSort(a,10);
for(i = 0; i 10; i ++)
printf("%-3d",a[i]);
return 0;
}
c语言,求一个数组中,中间值的大小怎么做?
楼主,这道题我的思路是先排序,然后输出排序后中间元素的值
一楼的思路也不错,可以参考
祝楼主进步~
程序如下:
#include stdio.h
#include math.h
#define N 10
int Search(double a[]);
void main()
{
double a[N];
int i,mid;
printf("请输入数据:");
for(i=0;iN;i++)
scanf("%lf",a[i]);
mid=Search(a);
printf("中间值为:%.12f\n",a[mid]);
}
int Search(double a[])
{
int i,j,flag;
double tmp;
for(i=N-1;i=0;i--)
{
flag=0;
for(j=0;ji;j++)
{
if(fabs(a[j])-fabs(a[j+1])1e-10)
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
flag++;
}
}
if(flag==0) break;
}
if(N%2)
return N/2+1;
else
return N/2;
}
-------------------------
修改宏定义的N值,可以改变数组大小