问一个有关数组的问题
c语言中有没有给数组的数量动态赋值的方法比如
int p;
scanf("%d", &a);
这种类型的方法(这个是不行的, 我试过了) 动态数组应该把两个语句顺序倒过来才对啊
scanf("%d", &a);
int p; jackz007 发表于 2019-11-21 20:24
动态数组应该把两个语句顺序倒过来才对啊
这样也不行,提示“p”: unknown size 本帖最后由 bin554385863 于 2019-11-22 14:38 编辑
咸鱼人某天 发表于 2019-11-22 08:06
这样也不行,提示“p”: unknown size
你要先声明一个变量,
然后初始化它,
最后才能用它来定义数组。
你想直接用int p,同时定义p和a,桃子吃多了吧
int main()
{
int a;
scanf("%d", &a);
int p;
}
a的值必须在你定义数组之前确定才行 方向换一下 c语言数组定义不能用变量,可以用指针,然后动态分配地址,或者是用容器 本帖最后由 jackz007 于 2019-11-22 18:25 编辑
咸鱼人某天 发表于 2019-11-22 08:06
这样也不行,提示“p”: unknown size
看看这个:
#include <stdio.h>
main(void)
{
int k = 200 ;
int p ;
for(k = 0 ; k < 200 ; k ++) p = k ;
for(k = 0 ; k < 200 ; k ++) {
if(!(k % 10)) printf("\n\t") ;
else printf(" , ") ;
printf("%3d" , p) ;
}
}
编译运行情况:
C:\Bin>g++ -o x x.c
C:\Bin>x
0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9
10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19
20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29
30 ,31 ,32 ,33 ,34 ,35 ,36 ,37 ,38 ,39
40 ,41 ,42 ,43 ,44 ,45 ,46 ,47 ,48 ,49
50 ,51 ,52 ,53 ,54 ,55 ,56 ,57 ,58 ,59
60 ,61 ,62 ,63 ,64 ,65 ,66 ,67 ,68 ,69
70 ,71 ,72 ,73 ,74 ,75 ,76 ,77 ,78 ,79
80 ,81 ,82 ,83 ,84 ,85 ,86 ,87 ,88 ,89
90 ,91 ,92 ,93 ,94 ,95 ,96 ,97 ,98 ,99
100 , 101 , 102 , 103 , 104 , 105 , 106 , 107 , 108 , 109
110 , 111 , 112 , 113 , 114 , 115 , 116 , 117 , 118 , 119
120 , 121 , 122 , 123 , 124 , 125 , 126 , 127 , 128 , 129
130 , 131 , 132 , 133 , 134 , 135 , 136 , 137 , 138 , 139
140 , 141 , 142 , 143 , 144 , 145 , 146 , 147 , 148 , 149
150 , 151 , 152 , 153 , 154 , 155 , 156 , 157 , 158 , 159
160 , 161 , 162 , 163 , 164 , 165 , 166 , 167 , 168 , 169
170 , 171 , 172 , 173 , 174 , 175 , 176 , 177 , 178 , 179
180 , 181 , 182 , 183 , 184 , 185 , 186 , 187 , 188 , 189
190 , 191 , 192 , 193 , 194 , 195 , 196 , 197 , 198 , 199
C:\Bin>
c语言数组定义不能用变量,可以用指针,然后动态分配地址,或者是用容器
C语言里完全可以这样弄啊int main(){
int N;
scanf("%d",&N);
if (N<0){
N=0;
}
int a;
......
}
c++里就不行了,动态数组了解一下
页:
[1]