咸鱼人某天 发表于 2019-11-21 20:15:17

问一个有关数组的问题

c语言中有没有给数组的数量动态赋值的方法
比如
int p;
scanf("%d", &a);
这种类型的方法(这个是不行的, 我试过了)

jackz007 发表于 2019-11-21 20:24:25

   动态数组应该把两个语句顺序倒过来才对啊
scanf("%d", &a);
int p;

咸鱼人某天 发表于 2019-11-22 08:06:40

jackz007 发表于 2019-11-21 20:24
动态数组应该把两个语句顺序倒过来才对啊

这样也不行,提示“p”: unknown size

bin554385863 发表于 2019-11-22 10:13:25

本帖最后由 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的值必须在你定义数组之前确定才行

qcyQCY 发表于 2019-11-22 10:28:47

方向换一下

永夜无昼 发表于 2019-11-22 14:35:20

c语言数组定义不能用变量,可以用指针,然后动态分配地址,或者是用容器

jackz007 发表于 2019-11-22 18:24:06

本帖最后由 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>

Croper 发表于 2019-11-22 18:55:08


c语言数组定义不能用变量,可以用指针,然后动态分配地址,或者是用容器
C语言里完全可以这样弄啊int main(){
    int N;
    scanf("%d",&N);
    if (N<0){
      N=0;
    }
    int a;
   ......
}
c++里就不行了,动态数组了解一下
页: [1]
查看完整版本: 问一个有关数组的问题