C语言题目
高手们,这是我面试的其中一题目,如何解?使用C语言写出一个排序算法,将buffer[10]里的数值(unsignedchar类型)从大到小排列?...
高手们,这是我面试的其中一题目,如何解?
使用C语言写出一个排序算法,将buffer[10]里的数值(unsigned char类型)从大到小排列? 展开
使用C语言写出一个排序算法,将buffer[10]里的数值(unsigned char类型)从大到小排列? 展开
3个回答
展开全部
////我定义的是char[11]因此可以存10个字符
#include<stdio.h>
int main()
{
char buffer[11]="abcdefghij",c;
int i,j;
printf("请依次输入这10个字符\n");
for(i=0;i<10;i++)
for(j=0;j<9-i;j++)
{
if(buffer[j]<buffer[j+1])
{
buffer[j]=buffer[j]+buffer[j+1];
buffer[j+1]=buffer[j]-buffer[j+1];
buffer[j]=buffer[j]-buffer[j+1];
/*
c=buffer[j];
buffer[j]=buffer[j+1];
buffer[j+1]=c;
*/
}
}
for(i=0;i<10;i++)
printf("%c",buffer[i]);
return 0;
}
--
2022-12-05 广告
2022-12-05 广告
二1、 在C语言中,全局变量的存储类别是: (a) A) static B) extern C) void D) register 2、 有如下函数调用语句 func(rec1,rec2+rec3,rec4,rec5); 该函数调用语...
点击进入详情页
本回答由--提供
展开全部
/*
*冒泡排序算法,将buffer[10]里的数值(unsigned char类型)从大到小排列
* 2014-01-07
*望采纳;)
*/
#include <stdio.h>
#define MAXSIZE 10
int main(void)
{
unsigned int buffer[10];
int i, j;
printf("请输入10个正整数:\n");
for (i = 0; i < MAXSIZE; i++){
scanf("%u", buffer + i);
}
printf("\n排序前:");
for (i = 0; i < MAXSIZE; i++ ){
printf(" %u", buffer[i]);
}
//以下使用冒泡排序法
for (i = 0; i < (MAXSIZE - 1); i++)
{
for (j = 0; j < (MAXSIZE - 1 - i); j++)
{
if (buffer[j] < buffer[j + 1])
{
buffer[j] ^= buffer[j + 1];
buffer[j + 1] ^= buffer[j];
buffer[j] ^= buffer[j + 1];
}
}
}
printf("\n排序后:");
for (i = 0; i < MAXSIZE; i++ ){
printf(" %u", buffer[i]);
}
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include"stdio.h"
int main()
{
int i,j,k;
int buffer[10] = {5,756,36,155,2,4974,361,987,5421,102};
for(i=0;i<10;i++)
{
for(j = i+1;j<10;j++)
{
if(buffer[i] < buffer[j])
{
k = buffer[j];
buffer[j] = buffer[i];
buffer[i] = k;
}
}
}
for(i=0;i<10;i++)
printf("%d\n",buffer[i]);
return 0;
}
这基本是个思路吧,最简单的算法,还有其他的排序方法,你自己查查相关资料
int main()
{
int i,j,k;
int buffer[10] = {5,756,36,155,2,4974,361,987,5421,102};
for(i=0;i<10;i++)
{
for(j = i+1;j<10;j++)
{
if(buffer[i] < buffer[j])
{
k = buffer[j];
buffer[j] = buffer[i];
buffer[i] = k;
}
}
}
for(i=0;i<10;i++)
printf("%d\n",buffer[i]);
return 0;
}
这基本是个思路吧,最简单的算法,还有其他的排序方法,你自己查查相关资料
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询