C语言编程 按图中要求 回答最好是自己编的而且有截图必采纳

如题所述

  #include <stdio.h>
#include <stdlib.h>

int main()
{  
    int *a, i, j, temp, N;
    while(scanf("%d", &N)!=EOF)
    {
    a = (int *)malloc(N * sizeof(int));
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    for(i=1;i<N;i++)
        for(j=0;j<N-i;j++)
            if(a[j]<a[j+1])
            {
                temp=a[j];a[j]=a[j+1];a[j+1]=temp;
            }
    for(i=0;i<N;i++)
        printf("%d ",a[i]);
    free(a);    a = NULL;
    printf("\n");
    }
    return 0;
}

望采纳

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-26
完整c程序代码:

#include <stdio.h>
#include <stdlib.h>

int main()
{
int n,i,j,temp;
while(scanf("%d",&n) == 1)
{
int *array;
array = (int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++)
{
scanf("%d",&array[i]);
}

// 以下是冒泡排序算法
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-1-i; j++)
{
if(array[j]<array[j+1])
{
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}

//排序完成,输出
for (i = 0; i < n; i++)
{
if(i != n-1)
printf("%d ",array[i]);
else
printf("%d",array[i]);
}

free(array);
}
return 0;
}

按照你的要求写的,只是题目没有说明什么情况下算输出结束,我就默认输入非int型数据就结束了,这个你可以自己简单改一改。追问

说了的 第一行那个是指有三组输入 读取三组的数据后结束

追答

那好吧 再给你改改:

#include
#include

int main()
{
int n,i,j,temp,count;
scanf("%d",&count);
while(count>0)
{
scanf("%d",&n);
int *array;
array = (int*)malloc(n*sizeof(int));
for (i = 0; i < n; i++)
{
scanf("%d",&array[i]);
}

// 以下是冒泡排序算法
for(i = 0; i < n-1; i++)
{
for(j = 0; j < n-1-i; j++)
{
if(array[j]<array[j+1])
{
temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}

//排序完成,输出
for (i = 0; i < n; i++)
{
if(i != n-1)
printf("%d ",array[i]);
else
{
printf("%d",array[i]);
if(count == 1)
printf("\n");
}
}

free(array);
count--;
}
return 0;
}

这样就和你那一样了

第2个回答  2015-05-26
裂土分肝沙壤土失
相似回答