回复 10楼 唏嘘草
自己去 google 以下动态数组就好了
回复 11楼 voidx
哦,看看去
程序代码:#include <stdio.h>
#include <stdlib.h>
static int g_len;
#define GET_ARRAY (get_array(0))
#define GET_N_INT(P) (((P)=get_array(0)) ? g_len : 0)
int* get_array(int n)
{
static int *p;
int a;
if (scanf("%d", &a) == 1) {
if (p = get_array(n+1))
p[n] = a;
return p;
}
return (g_len=n) ? (int*)malloc(n*sizeof(int)) : NULL;
}
int main(void)
{
int i, n, *p;
printf("\n读取您输入的整数,输入非整数停止输入。\n"
"您可以#来停止输入: ");
//p=GET_ARRAY; // p=输入的整数的地址——使后面代码知道输入的整数在哪。
//n=g_len; // n=刚刚输入的整数的个数——再次调用GET_ARRAY将改变g_len的值。
n=GET_N_INT(p); // 实现上面2行功能
printf("\n您共输入了%d个整数:\n", n);
for (i=0; i<n; ++i)
printf(" %d", p[i]);
printf("\n");
free(p); // 要记得用完就释放。要养成这个习惯。
system("pause");
return 0;
}
程序代码:#include <stdlib.h>
static int g_len;
// 把数组首地址赋值给P,返回数组长度。
#define GET_INT_ARRAY(P) (((P)=get_array(0)) ? g_len : 0)
int* get_array(int n)
{
static int *p;
int a;
if (scanf("%d", &a) == 1) {
if (p = get_array(n+1))
p[n] = a;
return p;
}
return (g_len=n) ? (int*)malloc(n*sizeof(int)) : NULL;
}
......................
要记得用free()释放内存,养成好习惯

程序代码:#include <stdio.h>
int main(void) {
int rows, cols;
scanf("%d%d", &rows, &cols);
int array[rows][cols];
printf("Successfully created a variable-length array:\n");
printf("rows : %d\n", rows);
printf("columns : %d\n", cols);
return 0;
}
