本文目錄一覽:
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值,可以改變數組大小
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254413.html