| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 359 人关注过本帖
标题:关于动态数组的问题
只看楼主 加入收藏
pgyan
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2011-11-1
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
关于动态数组的问题


第一行包含一个整数T,表示有T组数据。对于每组数据:第一行包含一个数字N(<100,000),表示该组数据由N个元素;第二行包含N个数,就是这N个元素的值( <100,000 )。
输出
对于每组数据输出一行,包含排序好后的N个元素,要求从小到大排序,相邻2个元素间有个空格,末尾无空格有个回车。
#include<stdio.h>
#include<malloc.h>
int **ab(int row,int col){
    int **a,i;
    a=(int **)calloc(row,sizeof(int *));
    for(i=0;i<row;i++)
        a[i]=(int *)calloc(col,sizeof(int));
    return a;
}
void Del(int **a,int row){
    int i;
    for(i=0;i<row;i++)
        free(a[i]);
    free(a);
}
void main(void){
    int j,k,l,n,row,col,**a,index;
    printf("输入:");
    scanf("%d\n,%d\n",row,col);
   
    a=ab(row,col);

    for(j=0;j+1<=row;j++){
        for(l=0;l+1<=col;l++){
            printf("输入:");
            scanf("%d",a[j][l]);
        }
    }
    for(j=0;j+1<=row;j++){
            for(k=0;k<col-1;k++){
                for(n=k+1;n<col;n++){
                    if(a[j][k]>a[j][n])
                        index=k;
                    a[j][index]=a[j][k];
                    a[j][n]=a[j][index];
                    a[j][k]=a[j][n];
                    printf("After sorted:");
                    for(k=0;k<col;k++){
                        printf("%d",a[j][k]);
                    }
                }
            }

    }
         Del(a, row);
}

调试无错误,但是运行不了????为什么,对数据结构不甚了解,求请教。。。
搜索更多相关主题的帖子: 数据 100 include return 动态 
2012-05-03 13:51
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:10 
程序代码:
#include<stdio.h>
#include<malloc.h>

int **ab(int row,int col)
{
     int **a,i;
     a=(int **)calloc(row,sizeof(int *));
     for(i=0;i<row;i++)
     {
         a[i]=(int *)calloc(col,sizeof(int));
     }
     return a;
}

void Del(int **a,int row)
{
    int i;
    for(i=0; i<row; i++)
    {
        free(a[i]);
    }
    free(a);
}

void Sort(int *a, int size)
{
    int i, j;
    //冒泡排序
    for (i=0; i<size; ++i)
    {
        for (j=0; j<size-i-1; ++j)
        {
            if (a[j] > a[j+1])
            {
                a[j] += a[j+1];
                a[j+1] = a[j] - a[j+1];
                a[j] -= a[j+1];
            }
        }
    }
}

void Print(int *a, int size)
{
    int i;
    for (i=0; i<size; ++i)
    {
        printf ("%d ", a[i]);
    }
    printf ("\n");
}

void main(void)
{
    int j, l, row,col, **a;
    printf("输入:");
    scanf("%d,%d",&row,&col);

    a=ab(row,col);
    for(j=0;j<row;j++)
    {
        for(l=0;l<col;l++)
        {
            printf("输入:");
            scanf("%d",&a[j][l]);
        }
    }
    for(j=0;j+1<=row;j++)
    {
        Sort(a[j], col);
        Print(a[j], col);
    }
    Del(a, row);
}



输入:3,3
输入:3
输入:6
输入:4
输入:23
输入:9
输入:22
输入:345
输入:4
输入:30
3 4 6
9 22 23
4 30 345
Press any key to continue
2012-05-04 12:40
快速回复:关于动态数组的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045090 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved