亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

當然各位大神都知道這個考函數和數組,還望給個力小弟提前感謝大家了!

當然各位大神都知道這個考函數和數組,還望給個力小弟提前感謝大家了!

白衣染霜花 2022-08-04 11:07:54
編寫函數,對實型數組進行降序排序。主函數輸入一個實型數組,調用函數完成排序,主函數中要求輸出排序結果(必須要函數調用)(必須通過函數調用實現功能而不是在主函數實現功能)
查看完整描述

3 回答

?
江戶川亂折騰

TA貢獻1851條經驗 獲得超5個贊

#include<stdio.h>

//冒泡排序法
void BubbleSort(int * pData,int Count)
{
int iTemp;
for(int i=1;i<Count;i++)
{ //一共進行(count-1)輪,每次得到一個最小值
for(int j=Count-1;j>=i;j--)//每次從最后往前交換,得到最小值
{
if(pData[j]<pData[j-1])
{
iTemp = pData[j-1];
pData[j-1] = pData[j];
pData[j] = iTemp;
}
}
}
}
int main()
{
int *data;
int n,i;
printf("請輸入要排序的數的個數:\n");
scanf("%d",&n);
data=new int[n];
printf("請輸入%d個數:\n",n);
for (i=0;i<n;i++)
{
scanf("%d",&data[i]);
}
BubbleSort(data,n);

printf("排序結果為:\n");
for (i=0;i<n;i++)
{
printf("%d ",data[i]);
}
return 0;
}


查看完整回答
反對 回復 2022-08-08
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

#include<stdio.h>
#define N 20
int compare(float x,float y)
{
if(x - y >1e-6)
return 1;
else if(y - x > 1e-6)
return -1;
else
return 0;
}

void swap(float x,swap y)
{
float z;
z = x;
x = y ;
y = z;
}

void sort(float a[],int n)
{
int i,j;
for(i = 0 ; i < n ; i ++)
for(j = i + 1; j < n ; j ++)
if(compare(a[i],a[j]) < 0)
swap(a[i],a[j]);
}

void main(void)
{
float array[N];
int n,i;
printf("請輸入你的數組元素個數:(n<=N)\n");
scanf("%d",&n);
for(i = 0 ; i < n ; i ++)
scanf("%f",&array[i]);
printf("排序前數組為:\n");
for(i = 0 ; i < n ; i ++)
printf("%.2f ",array[i]);
sort(array,n);
printf("排序后數組為:\n");
for(i = 0 ; i < n ; i ++)
printf("%.2f ",array[i]);

}


查看完整回答
反對 回復 2022-08-08
?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

#include <iostream>
#include <cmath>
using namespace std;

const int NUM=5;

void quicksort(double str[],int front,int rear)
{
int lower=front+1,upper=rear;
swap(str[front],str[(front+rear)/2]);
double mid=str[front];
while(lower<=upper)
{
while(str[lower]<mid) lower++;
while(str[upper]>mid) upper--;
if(lower<upper)
swap(str[lower++],str[upper--]);
else lower++;//這是為了結束外層循環;
}
swap(str[front],str[upper]);
if(upper+1<rear) quicksort(str,upper+1,rear);
if(upper-1>front) quicksort(str,front,upper-1);
}
void qs(double str[],int n)
{
int i,max;
if(n<2) return;
for(i=1,max=0;i<NUM;i++)//換最大元素到數組末尾;
if(str[i]>str[max]) max=i;
swap(str[NUM-1],str[max]);
quicksort(str,0,NUM-2);
}
int main()
{
int i;
double str[NUM];
for(i=0;i<NUM;i++)
scanf("%lf",&str[i]);
qs(str,NUM);
for(i=0;i<NUM;i++) cout<<str[i]<<' '; cout<<endl;
return 0;
}

一般數據結構與算法教科書都有快速排序的代碼:這個就是以前我不會調用STL時候自己寫的,有什么問題可以給我留言 : 這個是升序排序的,想降序可以:
for(i=NUM-1;i>=0;i--) cout<<str[i]<<' '; cout<<endl;


查看完整回答
反對 回復 2022-08-08
  • 3 回答
  • 0 關注
  • 172 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號