用C语言怎么解决这道题 200

 我来答
498372316
2019-04-16 · 超过11用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:17.8万
展开全部
int[50] a ; C语言数组定义,我忘记怎么写了
int i=0;
bool isover=false
for(i;i<50;i++){
read(a)//从键盘读取数据到数组当中
}
int* inptr=a*(这里也忘记了)取得数组指针
void order(int* a){
bool isover=false
while(isover){
if(a.count==50){
break;

}
//排序具体操作你看看算法
}

}
碧海风云

2019-04-16 · 碧海风的秘密小据点!
碧海风云
采纳数:909 获赞数:10280

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <conio.h>

#define ARR_LEN 50 /*数组长度上限*/
#define elemType int /*元素类型*/

/* 冒泡排序 */
/* 1. 从当前元素起,向后依次比较每一对相邻元素,若逆序则交换 */
/* 2. 对所有元素均重复以上步骤,直至最后一个元素 */
/* elemType arr[]: 排序目标数组; int len: 元素个数 */
void bubbleSort (elemType arr[], int len) {
elemType temp;
int i, j;
for (i=0; i<len-1; i++) /* 外循环为排序趟数,len个数进行len-1趟 */
for (j=0; j<len-1-i; j++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
if (arr[j] > arr[j+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,逆序反之) */
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}

/* 输入数组 */
/* elemType arr[]: 输入目标数组; int len: 元素个数 */
void inputArray (elemType arr[], int *len) {
int i = 0;
while (1) {
if (i>=ARR_LEN)
break;
scanf ("%d", &arr[i]);
if (arr[i] == -1)
break;
else
i++;
}
*len = i;
}

/*打印数组*/
/* elemType arr[]: 打印目标数组; int len: 元素个数 */
void printArray (elemType arr[], int len) {
int i;
for (i=0; i<len; i++)
printf ("%d\t", arr[i]);
putchar ('\n');
}

int main (void) {
elemType arr[ARR_LEN];
int len;

printf ("输入分数(输入-1结束):\n");
inputArray (arr, &len);
putchar ('\n');

printf ("排序后分数:\n");
bubbleSort (arr, len);
printArray (arr, len);

getch (); /*屏幕暂留*/
return 0;
}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
自我编程
2019-04-16 · 科技优质答主
自我编程
采纳数:1481 获赞数:4279

向TA提问 私信TA
展开全部

按照你题意:

参数地址传递。

#include <stdio.h>
#define N 50//分数最大个数50
void jx(int *scores,int *len);//降序排列,参数传递地址
int main()
{
    int i,scores[N],len=0,num;
    while(1)
    {
        scanf("%d",&num);
        if(num<0)
            break;
        scores[len]=num;
        len++;
    }
    jx(scores,&len);
    for(i=0;i<len;i++)
        printf("%d ",scores[i]);
    return 0;
}
void jx(int *scores,int *len)//降序排列
{
    int i,j;
    for(i=0;i<*len;i++)
        for(j=i+1;j<*len;j++)
            if(scores[i]<scores[j])
                scores[i]^=scores[j],scores[j]^=scores[i],scores[i]^=scores[j];
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式