c语言编程题:分别用冒泡法和选择法对输入的10个整数由大到小排序 C语言题目: 用冒泡法对任意输入的10个整数由小到大的顺序排...

作者&投稿:枕彼 (若有异议请与网页底部的电邮联系)

#include <stdio.h>

void maopao(int *a){

int temp=0;

for(int i=0;i<10-1;++i)//只需要冒泡9个数最后一个就已经有序了

for(int j=0;j<10-i-1;++j)//j的取值需<10-i-1;为何-1,

if(a[j]<a[j+1])

{

temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

}

}

void  xuanze(int *a){

for(int i=0;i<9;i++)

{

int temp=i,b;

for(int j=i+1;j<10;j++)

{

if(a[temp]<a[j])

temp=j;

}

if(i!=temp)

{

b=a[temp];

a[temp]=a[i];

a[i]=b;}

}

}

int main()

{

int a[10]={7,8,5,4,3,2,6,9,0,1};

int b[10]={1,2,5,7,43,23,565,6,9,10};

maopao(a);

for(int n=0;n<10;++n)

printf("%d  ",a[n]);

printf("
");

xuanze(b);

for(int n=0;n<10;++n)

printf("%d  ",b[n]);

}

扩展资料:

需要说明的是:

1、一个C语言源程序可以由一个或多个源文件组成。

2、每个源文件可由一个或多个函数组成。

3、一个源程序不论由多少个文件组成,都有一个且只能有一个main函数,即主函数。是整个程序的入口。

4、源程序中可以有预处理命令(包括include 命令,ifdef、ifndef命令、define命令),预处理命令通常应放在源文件或源程序的最前面。

5、每一个说明,每一个语句都必须以分号结尾。但预处理命令,函数头和花括号“}”之后不能加分号。结构体、联合体、枚举型的声明的“}”后要加“ ;”。

6、标识符,关键字之间必须至少加一个空格以示间隔。若已有明显的间隔符,也可不再加空格来间隔。

7、自定义函数在使用之前需要进行函数声明。

参考资料:



#include <stdio.h>
#define N 10
//冒泡排序(升序)
void bubble_sort(int a[],int n)
{
int i,j;  //j表示趟数,i表示第j趟两两比较的次数
int tmp; //临时变量
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i] > a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
void select_sort(int *array,int n)
{
    int i,j,k;
    int tmp;
    for(i=0;i<n-1;i++)
    {
        k=i;  //开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
        for(j=i+1;j<n;j++)
        {
if(array[k] > array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
    k=j;
        }
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
        if(k != i)
        {
            tmp=array[k];
            array[k]=array[i];
            array[i]=tmp;
        }
    }
}
//输入数组元素函数
void inputData(int *a,int n)
{
int i;
printf("输入数组元素:
");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
//输出数组元素函数
void outputData(int *a,int n)
{
int i;
printf("输出数组元素:
");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("

");
}
int main()
{
int arr[N]={0};
inputData(arr,N);
printf("使用冒泡排序算法...
");
bubble_sort(arr,N);  //调用冒泡排序函数
outputData(arr,N);
inputData(arr,N);
printf("使用选择排序算法...
");
select_sort(arr,N);  //调用选择排序函数
outputData(arr,N);
return 0;
}



#include <iostream>  
using namespace std;  
  
#define N 10  
  
void MpSort(int *a,int n)  
{  
    int i,j;  
    for(i=0;i<n-1;i++)     
    {  
        for(j=0;j<n-1-i;j++)  
        {  
            if(a[j]>a[j+1])    
            {  
                a[j]=a[j]+a[j+1];  
                a[j+1]=a[j]-a[j+1];  
                a[j]=a[j]-a[j+1];             
            }  
        }  
    }  
}  
  
int main()  
{  
    int i,j;  
    int *a=new int[N];  
      
    for(i=0;i<N;i++)  
    {  
        cin>>a[i];  
    }  
      
    MpSort(a,N);  
  
    for(i=0;i<N;i++)  
    {  
        cout<<a[i]<<" ";  
    }  
    cout<<endl;  
    return 0;  
}  
//冒泡排序    
//时间复杂度是 O(pow(n,2))   

#include <iostream>  
using namespace std;  
  
  
#define N 10  
  
  
void XzSort(int *a,int n)  
{  
int i,j,min_i,t;  
for(i=0;i<n-1;i++)  
{  
min_i=i;  
for(j=i+1;j<n;j++)  
{  
if(a[min_i]>a[j])  
{  
min_i=j;  
}  
}  
if(min_i!=i)  
{  
t=a[i];  
a[i]=a[min_i];  
a[min_i]=t;  
}  
}   
}  
  
  
int main()  
{  
int *a;  
a=new int[N];  
  
for(int i=0;i<N;i++)  
{  
cin>>a[i];  
}  
  
XzSort(a,N);  
  
for(int i=0;i<N;i++)  
{  
cout<<a[i]<<" ";  
}  
cout<<endl;  
return 0;  
}  
  
  
//直接选择排序   
//时间复杂度为 O(pow(n,2))   

这种问题最基础网上一大推没必要问,我的是C++写的不过算法都是一样的


c语言编程题:分别用冒泡法和选择法对输入的10个整数由大到小排序~

#include #define N 10//冒泡排序(升序)void bubble_sort(int a[],int n){int i,j; //j表示趟数,i表示第j趟两两比较的次数int tmp; //临时变量for(j=0;j a[i+1]){tmp=a[i];a[i]=a[i+1];a[i+1]=tmp;}}}//选择排序算法,按从小到大顺序void select_sort(int *array,int n){ int i,j,k; int tmp; for(i=0;i array[j]) //如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k k=j; }//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置 if(k != i) { tmp=array[k]; array[k]=array[i]; array[i]=tmp; } }}//输入数组元素函数void inputData(int *a,int n){int i;printf("输入数组元素:
");for(i=0;i<n;i++)scanf("%d",&a[i]);}//输出数组元素函数void outputData(int *a,int n){int i;printf("输出数组元素:
");for(i=0;i<n;i++)printf("%d ",a[i]);printf("

");}int main(){int arr[N]={0};inputData(arr,N);printf("使用冒泡排序算法...
");bubble_sort(arr,N); //调用冒泡排序函数outputData(arr,N);inputData(arr,N);printf("使用选择排序算法...
");select_sort(arr,N); //调用选择排序函数outputData(arr,N);return 0;}

1、新建一个工程和.c文件。

2、定义变量类型。

3、用一个for语句遍历整个数组。

4、引入一个子函数,该子函数的作用是调整数组元素的顺序,使之由小到大排列。

5、最后通过for函数一次输出调整后的数组元素。

6、介绍一下子函数的实现语句,首先定义子函数。

7、定义变量类型。

8、该子函数实现顺序的调整。

9、编译,执行即可。

c语言编程题:分别用冒泡法和选择法对输入的10个整数由大到小排序_百度...
答:void maopao(int *a){ int temp=0;for(int i=0;i<10-1;++i)//只需要冒泡9个数最后一个就已经有序了 for(int j=0;j<10-i-1;++j)//j的取值需<10-i-1;为何-1,if(a[j]<a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } void xuanze(int *a){ for(int...

C语言题:输入十个数用一维数组分别用冒泡法与选择排序法进行排序
答:include <stdio.h>#include <conio.h>#define ARR_LEN 255 /*数组长度上限*/#define elemType int /*元素类型*//* 冒泡排序 *//* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 *//* 2. 对所有元素均重复以上步骤,直至最后一个元素 *//* elemType arr[]: 排序目标数组;...

...输入一个6个元素的数组,请分别用冒泡法和选择法对数组进行升序排列...
答:1、新建一个163.php。2、输入php网页的结构(<?php?>)。3、声明PHP与浏览器交互的文件类型和编码。4、使用 array() 函数定义一个$numbers数组。5、使用 sort() 函数对数组 $numbers 中的元素进行排。6、使用 print_r() 函数,输出排序后的数组。7、运行网页,在浏览器中输出排序后的数组。

用c语言编写:输入20个整数,分别用选择法和冒泡法实现降序排列后,再按照...
答:///冒泡法 include <stdio.h> void main (){ int i,a[100],n,j,k=1,t;printf ("输入个数n: ");//你要的是20,就输入10吧 scanf ("%d",&n);printf ("输入%d个数据:\n",n);for (i=0;i<n;i++){ printf ("a[%d]= ",i);scanf ("%d",&a[i]);} for (i=1;i<...

C语言求解 输入十个学生姓名,分别用冒泡排序法和选择排序法对10个学生...
答:include<stdio.h>#include<string.h>char stu[10][20];void Bubble(void){ int i, j; for(i = 0; i < 10; i++) { for(j = 0; j + i < 9; j++) { if(strcmp(stu[j], stu[j + 1]) > 0) { char temp[20]; strcpy(temp, stu[j]); ...

C语言 分别用冒泡,选择,插入对n个数进行排序。
答://选择排序#include<stdio.h>void main(){int i,n,j,k,temp,a[100]; printf("Input n:\n"); scanf("%d",&n); printf("Input the arry:\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); for(i=0;i<n;i++) { k=i; /*给记号赋值*/ for(j=i+1;j<n;j+...

vb 编程 对已知存在在数组中的6个数,分别采用选择法冒泡法实现从小到大...
答:1、冒泡法(递增) 算法思想:(将相邻两个数比较,大的调到后头) 1)有n+1个数(存放在数组a(n)中),第一趟将每相邻两个数比较,大的调到后头,经n次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”; 2)第二趟对余下的n个数(最大的数已“沉底”)按上...

高分咨询:问用冒泡法和选择法分别实现对数组的排序,请举出些实例_百度...
答:冒泡排序 1、排序方法 将被排序的记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i].key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。(1)初始 R[...

...的数按照从小到大的次序排列分别用起泡排序和选择排序实现
答:}SqList;void compositor_1(SqList &list) //排序,采用选择排序 { int tmp;for(int i = list.length; i >= 0; i--){ int maxpos = i - 1;for(int j = 0; j < i - 1; j++){ if (list.r[j] > list.r[maxpos]){ maxpos = j;} } tmp = list.r[maxpos];lis...

求c语言选择排序法和 冒泡排序法代码!
答:各趟排序结束时检查exchange,若未曾发生过交换则终止算法,不再进行下一趟排序。 (2)具体算法 void BubbleSort(SeqList R) { //R(l..n)是待排序的文件,采用自下向上扫描,对R做冒泡排序 int i,j; Boolean exchange; //交换标志 for(i=1;i<n;i++){ //最多做n-1趟排序 exchange=...