再问个问题
题目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编辑过]
----------------解决方案--------------------------------------------------------