C我需要使用malloc和动态分配的数组,但是我需要打印用户输入

时间:2017-05-26 10:38:22

标签: c malloc

非常好。我需要向用户询问元素的数量,然后向他们询问他们想要的整数,并最终打印出所有的整数。

到目前为止,这是我的代码:

int main(void)
{
  int user_input = 0, elements = 0;
  printf("How many int elements will you enter?\n");
  scanf("%d", &elements);

  int* dynamic_array = (int *)malloc(sizeof(double)* elements);

  for (int i = 0; i < elements; i++)
  {
    printf("Element %d?\n", i + 1);
    scanf("%d", &dynamic_array[i], i + 1);
  }

  for (int printf_number = 1; printf_number <= elements; printf_number++)
  {
    printf("Element %d: %d\n", printf_number, (dynamic_array[user_input]));
  }

  free(dynamic_array);
  dynamic_array = 0;
  return 0;
}

2 个答案:

答案 0 :(得分:1)

for (int printf_number = 1; printf_number <= elements; printf_number++) 
{ 
    printf("Element %d: %d\n", printf_number, (dynamic_array[user_input])); 
} 

您的索引printf_number应从零开始,条件必须为printf_number < elements。您必须使用printf_number索引数组,而不是user_input。请注意,user_input未初始化。

为什么只在读取整数时才使用sizeof(double)分配数组?

答案 1 :(得分:0)

问题1:您正在为商店分配for j=2:n-1 w(:,j+1)=a*w(:,j)-w(:,j-1)+sigma^2*[lside(j);zeros(m-2,1);rside(j)]; end 问题2:您没有遍历数组来打印数字

sizeof(double)