C语言 输入未知个整数 空格分开 保存到数组中 怎样实现

能写出具体程序么最好能输出排序后的数组... 能写出具体程序么 最好能输出排序后的数组 展开
 我来答
White_MouseYBZ
2014-01-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6591万
展开全部
给你提供个思路:自己定义一个输入函数,先动态声明一个比较小的buffer,比如10个元素(其实1个也可以,但费时一些;若要快当,就声明多一些元素),输入到满时,另外声明一个比原来多10元素的buffer,把刚才那些输入的数组拷贝到新声明的较大的buffer里,再把原来那个buffer释放掉;等这个buffer满时故伎重演……曾用此法写过一个实用软件,效果很好。缺点是交替时需要两倍多一点的buffer空间,算是一种空间上的不经济吧……
psxk
2014-01-15 · TA获得超过153个赞
知道答主
回答量:48
采纳率:100%
帮助的人:32.4万
展开全部
搜索冒泡排序,快速排序,归并排序,插入排序中的一种,加到一楼的程序中就行了,把得到的数组应用一种排序算法后输出就行了
追问
我用qsort的 结果有问题
int a[100]={0}; for(i=0;;i++) { scanf("%d",&a[i]); n++; if (getchar()=='\n') break; } qsort(a,n,sizeof(int),cmp); for(i=0;i<n;i++) printf("%d ",a[i]);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Rankabc
推荐于2018-03-01 · TA获得超过3561个赞
知道大有可为答主
回答量:3705
采纳率:59%
帮助的人:1061万
展开全部
#include<stdio.h>
void main()
{
int i,a[99]={0},n=0;
for(i=0;;i++)
{
scanf("%d",&a[i]);
n++; //统计个数
if (getchar()=='\n') break;
}
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
更多追问追答
追问
这个排序怎么办  我试了输出了好多0 是不是要动态申请内存
追答

排序也行啊

for(i=0;i<n;i++)  //从0-n排

#include <stdio.h>
void main()
{
    int i,j,t,a[99]={0},n=0;
    for(i=0;;i++)
    {
        scanf("%d",&a[i]);
        n++; //统计个数
        if (getchar()=='\n') break;
    }
for(j=1;j<n;j++)         
        for(i=0;i<j;i++)       
            if(a[i]>a[j])           
            {
                t=a[i];a[i]=a[j];a[j]=t;
            }
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dingzongfu
2014-01-15 · 超过11用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:30.8万
展开全部
定义一个char指针,将输入当作一个字符串,然后在程序中处理字符串即可!
追问
能写出程序么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式