当前位置: 代码迷 >> C语言 >> 一个小问题:数组中个数是n,未确定该怎么办?
  详细解决方案

一个小问题:数组中个数是n,未确定该怎么办?

热度:192   发布时间:2005-02-12 16:34:00.0
多谢大家的指点。。。

再问个问题
题目1:在键盘上输入n个整数,再让其按升序输出
这个题目中该如何从键盘取得这n个整数?scanf后面不是要写一大串?
----------------解决方案--------------------------------------------------------
可以用循环
----------------解决方案--------------------------------------------------------
以下是引用神vLinux飘飘在2005-2-12 0:19:27的发言: 呵呵 int *creat(int n){return (int*)malloc(2*n);} 和链表差远了,他根本就不具备链表应该有的性质。 不过,“数组其实也是指针。q[0]也就是*q,q[1]就是*(q+1) ”这句倒是没错
唉,写出这样的函数你还得意洋洋????
----------------解决方案--------------------------------------------------------
以下是引用siyang1982在2005-2-11 22:17:10的发言: 大家先看下面这两个题目 题目1:在键盘上输入n个整数,再让其按升序输出 题目2:打印高度为n的杨辉三角 这个要用到数组,可是数组的大小开始就要确定啊,就是不能设为a[n]又不能设置为a[], 该怎么办呢? 请指点。
有两种办法: 1)用预定义来定义好N的大小。 #define N 6 2)用指针来动态创建数组。 main() { int n; int *p; printf("请给出n的大小"); scanf("%d",&n); p=malloc(n*sizeof(int)); ...... }
----------------解决方案--------------------------------------------------------
KNOCKER
给我个好点的理由,否则送你上[不正常人类研究中心]
----------------解决方案--------------------------------------------------------
@knocker神的代码我没看出什么问题...请明示
----------------解决方案--------------------------------------------------------
感觉神的函数多此一举,malloc和calloc都可以很好的解决
----------------解决方案--------------------------------------------------------
噢,是这样,因为是神写的,所以不行!俺通不过

1。没有free

2。malloc(n*sizeof(int)),而不是malloc(n*2).

3。有个叫变长数组东东,直接定义

int n;

scanf("%d",&n);

int fun(int n)

{

int s[n];

.......

}

当然,你用TC是行不通的
----------------解决方案--------------------------------------------------------
不知道用函数能不能做```````
----------------解决方案--------------------------------------------------------
2。malloc(n*sizeof(int)),而不是malloc(n*2).

sizeof(int)=2,就是可读性(或许还有可移植性)差些,效率的角度还是不错的。

[此贴子已经被作者于2005-2-15 21:27:06编辑过]



----------------解决方案--------------------------------------------------------
  相关解决方案