#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语言编程 排序并插入等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)