【问题标题】:Store an array value from the user and print it where array it stored (using only array and forloop)存储来自用户的数组值并将其打印到存储数组的位置(仅使用数组和 for 循环)
【发布时间】:2019-09-25 12:20:34
【问题描述】:

我做了一个程序,询问应该在一个数组中输入多少元素,所以如果用户输入 3,它会要求一个值存储在数组中,然后程序再次要求输入,“输入一个号”。

如果用户输入一个已经存储在数组中的值,它应该显示例如“您输入的数字已经存储在数组中”。


我的教授把这个任务交给了我们,他说我们应该只使用数组和 for 循环。我是这个计算机编程的新手,目前正在大学一年级学习编程。如果有人可以帮助我,那就太好了。

int main()
{
   int Array[50], i, Number;
   int cont;

  printf("\nPlease Enter Number of elements in an array  :  ");
  scanf("%d", &Number);

  printf("\nPlease Enter %d elements of an Array \n", Number);
  for (i = 0; i < Number; i++)
   {
     scanf("%d", &Array[i]);

   }
 printf("ENTER NUMBER: ");
 scanf("%d", &cont);

 if(cont = Array[0]){
    printf("the number you input is stored in array# %d", Array[1]);
 }


}

预期的输出应该是这样的

Please Enter Number of elements in an array: 3
Please Enter 3 elements of an Array
10
20
30
ENTER NUMBER:20

the number you input is stored in array# 1

但我的代码中的输出是。

Please Enter Number of elements in an array: 3
Please Enter 3 elements of an Array
10
20
30
ENTER NUMBER:20

the number you input is stored in array# 20

【问题讨论】:

  • 您应该在数组的边界内循环并检查每个值本身。如果您找到了该值,请中断循环并打印索引变量。如果用户输入大于 50 的数字,for (i = 0; i &lt; Number; i++) 也是一个危险语句,因为您的 Array 仅包含 50 个元素。
  • 你能解释一下你希望这段代码做什么:if(cont = Array[0]){ printf("the number you input is stored in array# %d", Array[1]); }
  • cont = Array[0] -> cont == Array[0]。但最有可能出现 mor 错误。
  • @AlexLop。如果用户向数组输入相等的值,它将打印下面的代码,我还是编程新手。
  • @Trickzter 谢谢你们救了我 :)

标签: c arrays loops for-loop


【解决方案1】:

您的程序中有一个常见错误:

 if(cont = Array[0]){
    printf("the number you input is stored in array# %d", Array[1]);
 }

您正在用Array[0] 覆盖cont。你的意思是:

 if(cont == Array[0]){
    printf("the number you input is stored in array# %d", Array[1]);
 }

此外,您不仅应该检查数字 (cont) 是否与数组中的第一个条目匹配,还应该检查所有条目,如下所示:

for (int i = 0; i < Number; ++i) {
     if(cont == Array[i]){
        printf("the number you input is stored in array# %d", i);
        break;
     }
}

如果找不到号码,则不打印任何内容。

【讨论】:

  • 非常感谢,但你能告诉我代码应该是什么样子吗?
  • @Seonix 只需将您的“if(cont = Array[0]){...”替换为我所说的“for (int i = 0; i
  • 好的,谢谢你救了我的命 :) 我仍然是编程 xD 的菜鸟
  • 我有第二个问题要问你,如果我的教授接受了 while 循环,你能把你说的 while 循环发给我吗?顺便说一句,如何使这个线程得到回答? xD
  • @Seonix 问题或解决方案中不涉及 while 循环。我不确定你在说什么。看到这个答案meta.stackexchange.com/questions/5234/…
猜你喜欢
  • 1970-01-01
  • 2012-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多