【问题标题】:How to print a large incompletely filled array only till last entered int (in C)?如何仅在最后输入 int (在 C 中)之前打印一个未完全填充的大型数组?
【发布时间】:2020-11-25 20:57:54
【问题描述】:

我正在使用int er[3001]。我将接受用户输入,但不太可能使用整个数组大小。

char 数组/字符串中,只需设置一个for 循环测试arr[i] != \0int 数组如何实现这种效果?

我假设使用相同的确切条件行不通?

【问题讨论】:

  • 您应该使用另一个变量来跟踪填充元素的范围。
  • 您将如何接受用户输入?我想据此写一个答案。
  • @MikeCAT 实际上我正在将 char arr 转换为 int arr ,并且我使用 fgets() 获取 char arr 的输入
  • 请注意,您可以将 arr[i] != '\0' 用于字符串,因为 C 中的“字符串”是空终止字符序列的名称,但您不能将它用于一般的 char 数组,就像您做不到一样一般int数组。
  • @MikeCAT 啊我明白了

标签: arrays c for-loop int printf


【解决方案1】:

我假设使用相同的确切条件行不通?

你说得对,没有默认标记值来标记整数数组的结尾。您需要:

  • 跟踪成功输入的元素数
  • 用一个无效值初始化数组(比如-1,当所有预期的输入都是非负数时)并到达输入后的第一个无效值位置。
  • 在输入本身中使用用户定义的标记值来标记输入的结束。

【讨论】:

  • @MikeCAT 你的建议和这个答案已经说服我只使用一个变量来跟踪输入的数量
  • Sourav Ghosh 和@MikeCAT 我需要帮助。稍后,我想将用户的整数输入带入一个整数数组,其中 scanf() { 使用 scanf 非常重要,因为值将由空格终止 } ...没有用户实际输入 count ,是否有可能制作一个只需要用户提供的输入的循环(通常,for/while 循环的条件类似于 while i
  • @JakeFry 有什么帮助?
  • 对不起,我正在写评论,现在我已经完成了
  • 哦,我明白了...我将在 for 循环中实现一个 if 语句,如果输入了一些东西,比如 -1 ,它将打破它!明白了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
  • 2021-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多