C语言网

 找回密码
 加入社区!

QQ登录

只需一步,快速开始

查看: 878|回复: 12

如何改变数组的长度 [复制链接]

Rank: 2

主题
6
帖子
45
C币
52 枚
在线时间
12 小时
发表于 2010-5-8 02:16:37 |显示全部楼层
想输入若干个数,排列其大小,我想用数组来做,但是数组的长度总是固定的;我想改变其长度,让它的长度由用户自己规定;用宏定义但是总出错,哪位高手教一下。要是写一个例子就更好啦,谢谢啦!

Rank: 1

主题
0
帖子
8
C币
8 枚
在线时间
0 小时
发表于 2010-6-10 17:28:42 |显示全部楼层
#include <stdio.h>
#include <stdlib.h>

void sort(int* p,int n);
void show(int* p,int n);
int main()
{
        int *p,n,i;
        printf("请输入数组长度:\n");
        scanf("%d",&n);
        p=(int*)malloc(n*sizeof(int));  //动态申请一段内存
       
        for(i=0;i<n;i++)
        scanf("%d",p+i);
        printf("排序前:\n");
        show(p,n);
        printf("排序后:\n");
        sort(p,n);
        show(p,n);
        return 0;
}
void sort(int* p,int n)
{
        int temp,i,j,min;
        for(i=0;i<n-1;i++)
        {
                min=i;
                for(j=i+1;j<n;j++)
                {
                        if(p[j]<p[min])
                        min=j;
                }
                if(min!=i)
                {
                        temp=p[min];
                        p[min]=p[i];
                        p[i]=temp;       
                }
        }       
}
void show(int* p,int n)
{
        int i;
        for(i=0;i<n;i++)
        printf("%d\t",p[i]);
        putchar('\n');
}

Rank: 1

主题
0
帖子
1
C币
1 枚
在线时间
0 小时
发表于 2010-7-26 22:45:01 |显示全部楼层
直接把数组定为a[200];
然后输入要规定的长度&n;
所以你可以控制a[0]~a[n];
我一向都是这样用的

Rank: 1

主题
0
帖子
8
C币
8 枚
在线时间
1 小时
发表于 2010-8-2 21:46:32 |显示全部楼层
使用 realloc

Rank: 2

主题
3
帖子
113
C币
117 枚
在线时间
7 小时
发表于 2010-8-9 18:05:14 |显示全部楼层
C99支持变长数组

Rank: 1

主题
0
帖子
7
C币
6 枚
在线时间
2 小时
发表于 2010-8-16 11:50:39 |显示全部楼层
malloc 和 realloc

Rank: 2

主题
2
帖子
80
C币
87 枚
在线时间
16 小时
发表于 2010-9-2 12:29:12 |显示全部楼层
#define  N  200

Rank: 1

主题
0
帖子
3
C币
3 枚
在线时间
0 小时
发表于 2011-1-7 18:06:20 |显示全部楼层
晕。直接用malloc开辟空间。c语言下数组不支持改变长度

Rank: 1

主题
0
帖子
14
C币
14 枚
在线时间
0 小时
发表于 2011-1-13 10:47:30 |显示全部楼层
学习学习。。。。。。。。。。。。

Rank: 1

主题
0
帖子
10
C币
10 枚
在线时间
1 小时
发表于 2011-1-15 16:31:08 |显示全部楼层
p=(int*)malloc(n*sizeof(int));  中“malloc”来自哪里?什么意思?
您需要登录后才可以回帖 登录 | 加入社区!

C语言 ( 粤ICP备11042647号-2 )

GMT+8, 2012-2-7 22:34

©2009-2011 cyuyan.com.cn

回顶部