C语言编程题 输入n个整数 按照从小到大的顺序排列

C语言编程题 输入n个整数 按照从小到大的顺序排列,第1张

#include<stdioh>

#include<stdlibh>

int main()

{

int n,a[100],i=0,j,temp;

printf("请输入数的个数:");

scanf("%d",&n);

printf("\n请输入要排序的数:\n");

for(i=0;i<n;i++)

scanf("%d",&a[i]);

for(i=0;i<n;i++)

for(j=i;j<n;j++)

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

temp=a[i],a[i]=a[j],a[j]=temp;

printf("排序后:\n");

for(i=0;i<n;i++)

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

return 0;

}

#include<stdioh>

void input(int p,int num)

{

// int a[10]; 不能在子函数中再定义了,要用形参对应的实参, 子函数中定义的是局部变量,函数完成时,变量就释放了。

// for(p=a;p<a+10;p++)

int i;

for(i=0;i<num;i++)

scanf("%d",p+i);

}

void sort(int p,int num)

{

// int a[10]; 同前

int i,j,temp;

// for(p=a;p<a+10;p++)

for(i=0;i<num;i++) //数组下标从0开始

{

for(j=i+1;j<num;j++)

if(p[i]<p[j])

{

temp=p[i];

p[i]=p[j];

p[j]=temp;

}

}

}

void output(int p,int num)

{

//int a[10]; 同前

// for(p=a;p<a+10;p++)

int i;

for(i=0;i<num;i++)

printf("%d ",(p+i));

}

int main()

   int a[10]; 

   input(a,10); 

   sort(a,10); 

   output(a,10); 

   return 0;

}

写个样例给你看看吧

#include <stdioh>

int main()

{

int n, a[11], i, j, t, v;

//scanf("%d", &n);

scanf("%d", &a[0]);//输入第一个数

for (i = 1; i < 9; ++i){//剩下的八个

scanf(",%d", &a[i]);

}

n = 9;

for (i = 0; i < n; ++i){//选择排序

t = i;

for (j = i + 1; j < n; ++j){

if (a[t] > a[j])t = j;

}

if (t != i){

v = a[t], a[t] = a[i], a[i] = v;

}

}

scanf("%d", &v);//要插入的数

for (i = n-1; i >= 0; --i){

if (a[i] > v){

a[i + 1] = a[i];

}

else break;

}

++i;//插入位置

a[i] = v;

n++;

for (i = 0; i < n; ++i){//输出

if (i == 0)printf("%d", a[i]);

else printf(",%d", a[i]);

}

printf("\n");

return 0;

}

冒泡法!在我们写程序的时候,通常都会对一组数据进行排序,常用的方法有冒泡法和选择法,我主要写下我对冒泡法的理解和心得。

冒泡法:顾名思义,就是把小的数据向前排,也就是向上浮起,并因此进行排序。

例:

#include "stdioh" 包含头文件

void main() 主函数

{

int a[10],t,i,j; 定义要用的数据和数祖

printf("input the ten number:\n"); 显示输出

for(i=0;i<10;i++)

scanf("%d",&a[i]); 利用循环接受数据

for(j=0;j<10;j++)

for(i=0;i<9-j;i++)

if(a[i]>a[i+1])

{

t=a[i];

a[i]=a[i+1]; 这个就是冒泡的要义了,这个语句是进行冒泡的,下面会有解释

a[i+1]=t;

}

for(i=0;i<10;i++)

printf("%d\t",a[i]); 循环输出排序后的数据

}

#

include

<stdioh>void

main

(){

int

t,a,b,c,d; printf("请输入4个数;");

scanf("%d,%d,%d,%d",&a,&b,&c,&d);

printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d);

if(a>b)

{t=a;a=b;b=t;} if(a>b)

{t=a;a=b;b=t;}}

if(a>c)

{t=a;a=c;c=t;}

if(a>d)

{t=a;a=d;d=t;}

if(b>c)

{t=b;b=c;c=t;}

if(b>d)

{t=b;b=d;d=t;}

if(c>d)

{t=c;c=d;d=t;}

printf("排序结果如下:\n");

printf("%d

%d

%d

%d

\n",a,b,c,d);

C语言即中文版的C语言,是一种面向过程的计算机程序设计语言。

#include <stdioh>

#include <stdlibh>

#include <ctime>

#define ARRA_LEN 50

void Bubblesort(int sort[],int n) // 冒泡排序

{

int temp;

for(int i=0; i<n-1; i++)

for(int j=0; j<n-i-1; j++)

{

if(sort[j] > sort[j+1])

{

temp = sort[j];

sort[j] = sort[j+1];

sort[j+1] = temp;

}

}

}

void Insertionsort(int sort[], int n) // 插入排序

{

int temp;

for(int j,i=1; i<n; i++)

{

temp = sort[i];

j = i - 1;

while(j>=0 && temp>sort[j] )

{

sort[j+1] = sort[j];

j--;

}

sort[j+1] = temp;

}

}

void Selestsort(int sort[], int n) // 选择排序

{

int m = 0;

int temp;

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

{

m = i;

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

{

if(sort[j] < sort[m])

m = j;

}

temp = sort[i];

sort[i] = sort[m];

sort[m] = temp;

}

}

void print(int arra, int len)

{

int i = 0;

for(; i<len; i++)

{

printf("%d \t", arra[i]);

}

}

void initArra(int arra, int len)

{

int i = 0;

srand(time(0)); //设置随机种子

for(; i<ARRA_LEN; i++)

{

arra[i] = rand()%100; //产生随机数100以内

}

}

//还有希尔和快排等,我只对这几个简单的比较熟,呵呵,祝你好运

int main()

{

int array[ARRA_LEN]; //int数组

printf("冒泡排序:\n");

initArra(array, ARRA_LEN);

printf("排序前:\n");

print(array, ARRA_LEN);

Bubblesort(array, ARRA_LEN);

printf("排序后:\n");

print(array, ARRA_LEN);

printf("插入排序:\n");

initArra(array, ARRA_LEN);

printf("排序前:\n");

print(array, ARRA_LEN);

Insertionsort(array, ARRA_LEN);

printf("排序后:\n");

print(array, ARRA_LEN);

printf("选择排序:\n");

initArra(array, ARRA_LEN);

printf("排序前:\n");

print(array, ARRA_LEN);

Selestsort(array, ARRA_LEN);

printf("排序后:\n");

print(array, ARRA_LEN);

return 0;

}

k==i 说明排序前k,i指向一个人的id,排序后还是指向一个人,所以没必要交换

strcmp(name[k],name[j])>0 strcmp 字符串比较函数,

这是一个选择排序算法,每趟求出最大人名的下标,并交换

以上就是关于C语言编程题 输入n个整数 按照从小到大的顺序排列全部的内容,包括:C语言编程题 输入n个整数 按照从小到大的顺序排列、C语言程序设计之中的 指针排序、C语言编程 排序并插入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9341436.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存