函数数组升序c语言 数组的升序降序

C语言数组七个数升序排列和降序排列怎么编程?1、打开visual C6.0-文件-新建-文件-CSource File 。
2、定义数组和变量:#includestdio.hmain(){char a[100], b[100], c[200],*p;int i = 0, j = 0, k = 0; 。
3、输入字符串: printf("please input string a:\n");scanf("%s", a);/*输入字符串1放入a数组中*/ 。
4、输入字符串:printf("please input string b:\n");scanf("%s", b);/*输入字符串2放入b数组中*/ 。
5、给字符串进行排序 。
6、链接字符串并输出:if (a[i] == '\0')/*判断a中字符是否全都复制到c中*/
p = bj;/*p指向数组b中未复制到c的位置*/ 。
7、输出最后的结果 。
C语言 , 数组数据升序排列#include stdio.h
#include malloc.h
int main()
{
int *p=NULL,n=0;
int i,j,temp;
printf("请输入数组大小!\n");
scanf("%d",n);
p=(int *)malloc(sizeof(int)*n);
if(p==NULL)
{
printf("内存不足分配失败!\n");
return 0;
}
printf("请为%d个元素赋值如 1 2 3\n",n);
for(i=0;in;i)
scanf("%d",p i);
for(i=1;in;i)
{
for(j=0;jn-i;j)
if(p[j]p[j 1])
{
temp=p[j];
p[j]=p[j 1];
p[j 1]=temp;
}
}
printf("排序结果!\n");
for(i=0;in;i)
printf("]",p[i]);
printf("\n");
return 0;
}
用函数编程实现在一个未排序的长度为20的数组按升序排序常用函数数组升序c语言的c语言排序算法主要有三种即冒泡法排序、选择法排序、插入法排序 。
一、冒泡排序冒泡排序:
是从第一个数开始函数数组升序c语言,依次往后比较,在满足判断条件下进行交换 。代码实现(以升序排序为例)
#includestdio.hint main()
{
int array[20] = { 6,9,7,8,5,3,4,0,1,2 , 21,23, 18, 33, 28,29,38,26, 48,19};
int temp;
for (int i = 0; i20; i)
{//循环次数
for (int j = 0; j 20 - i-1; j)
{
if (array[j]array[j 1])
{//前面一个数比后面函数数组升序c语言的数小时发生交换
temp = array[j];
array[j] = array[j 1];
array[j1] = temp;
}
}
} //打印数组
for (int i = 0; i20; i)
printf("-", array[i]);
return 0;}
}
二、选择排序以升序排序为例:
就是在指定下标函数数组升序c语言的数组元素往后(指定下标的元素往往是从第一个元素开始 , 然后依次往后),找出除指定下标元素外的值与指定元素进行对比,满足条件就进行交换 。与冒泡排序的区别可以理解为冒泡排序是相邻的两个值对比,而选择排序是遍历数组,找出数组元素与指定的数组元素进行对比 。(以升序为例)
#includestdio.h
int main()
{
int array[10] = { 6,9,7,8,5,3,4,0,1,2 };
int temp, index;
for (int i = 0; i9; i)
{
index = i;
for (int j = i; j10; j)
{
if (array[j]array[index])
index = j;
}
if(i != index)
{
temp = array[i];
array[i] = array[index];
array[index] = temp;
}
for(int i=0;i10:i)
printf("-"array[i]);
return 0;
}
三、快速排序
是通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要?。?然后再按此方法对这两部分数据分别进行快速排序 , 整个排序过程可以递归进行,以此达到整个数据变成有序序列 。
void QuickSort(int* arr, int size)
{
int temp, i, j;
for(i = 1; i size; i)
for(j=i; j0; j--)
{
if(arr[j] arr[j-1])
{
temp = arr[j];
arr[j]=arr[j-1];
arr[j-1]=temp;
}
}
}
c语言 编写一个排序函数,实现对主函数中数组的升序排序.经典的两个排序:
(1)选择排序
#include stdio.h
main()
{
int a[5];
int i,j,k,t;
for (i=0;i5;i)
scanf("%d",a[i]);
for (i=0;i4;i)
{
k=i;
for(j=i 1;j5;j)
if(a[k]a[j])
k=j;
if(k!=i)
{
t=a[k];
a[k]=a[i];
a[i]=t;
}
}
【函数数组升序c语言 数组的升序降序】 for(i=0;i5;i)
printf("=",a[i]);
}
(2)冒泡排序
#include stdio.h
main()
{
int a[5];
int i,j,t;
for (i=0;i5;i)
scanf("%d",a[i]);
for (i=0;i4;i)
for(j=0;j4-i;j)
{
if(a[j]a[j 1])
{
t=a[j];
a[j]=a[j 1];
a[j 1]=t;
}
}
for (i=0;i5;i)
printf("=",a[i]);
}
c语言数组升序排列问题最好不要while循环,因为排序是二层循环
外层是比较次数 , 内存是交换
//
for(int j=0;j6;j)
{
for(int i=0;i6-j;i)
if(nums1[i]nums1[i 1])
{ exc = nums1[i];
nums1[i] = nums1[i 1];
nums1[i 1] = exc; k;
}
}
C语言实现一个函数,将数组整体升序排列.我亲手写的 。
#includestdio.h
#includestdlib.h
int get_len(char *);
void rp_last(char* , char* , char* );
int get_len(char* str)
{
if(str == NULL) return -1;
int i;
for(i=0;str[i];i);
return i;
}
void rp_last(char *s,char *sub1,char *sub2){
int i,j;
int k;
int sLen;
int sub1Len;
int sub2Len;
sLen=get_len(s);
sub1Len=get_len(sub1);
sub2Len=get_len(sub2);
for(i=sLen-1;i=0;i--)
{
for(j=sub1Len-1,k=i;j=0k=0;j--,k--)
if(s[k]!=sub1[j]) break;
if(j0) break;
}
//printf("%d\n",i);
if(j=0)
printf("not found!\n");
else if(sub1Lensub2Len)
{
k=sub1Len-sub2Len;
for(j=i 1;s[j-k]=s[j];j);
for(j=sub2Len-1;j=0;j--,i--)
s[i-k]=sub2[j];
}
else{
k=sub1Len-sub2Len;
s[k sLen]='\0';
for(j=sLen-1;ji;j--)
s[j k]=s[j];
for(j=sub2Len-1;j=0;j--,i--)
s[i k]=sub2[j];
}
printf("result:%s\n",s);
return ;
}
void main()
{
char s[256];
char sub1[100];
char sub2[100];
printf("s:");gets(s);
printf("sub1:");gets(sub1);
printf("sub2:");gets(sub2);
rp_last(s,sub1,sub2);
return ;
}
函数数组升序c语言的介绍就聊到这里吧,感谢你花时间阅读本站内容 , 更多关于数组的升序降序、函数数组升序c语言的信息别忘了在本站进行查找喔 。

    推荐阅读