Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 使用循环和开关语句的一维数组操作迭代_C_Arrays - Fatal编程技术网

C 使用循环和开关语句的一维数组操作迭代

C 使用循环和开关语句的一维数组操作迭代,c,arrays,C,Arrays,此程序有多个选项可供选择,例如。 1.向数组中添加元素 2.搜索元素 3.移除一个元素 我只展示了一个案例,因为其他案例都无关紧要。在这里,第一个循环对所有选项都有效,但对于第二个迭代,我不能添加新元素,它总是说“元素添加成功” intk=0,found=0; //k统计列表中的所有元素 而(1){ 开关(选择) { 案例1: printf(“输入数字:”); scanf(“%d”和&num); 对于(i=0;i在添加第一个元素后,您找到的始终是1。在下一次迭代之前,将找到的重置为0。什么不起作

此程序有多个选项可供选择,例如。
1.向数组中添加元素
2.搜索元素
3.移除一个元素
我只展示了一个案例,因为其他案例都无关紧要。在这里,第一个循环对所有选项都有效,但对于第二个迭代,我不能添加新元素,它总是说“元素添加成功”

intk=0,found=0;
//k统计列表中的所有元素
而(1){
开关(选择)
{
案例1:
printf(“输入数字:”);
scanf(“%d”和&num);

对于(i=0;i在添加第一个元素后,您找到的
始终是
1
。在下一次迭代之前,将
找到的
重置为
0

什么
不起作用
请显示输入以及实际和预期的输出。“不起作用”不是一个问题陈述。欢迎使用堆栈溢出!您介意创建一个吗?也与它不工作的问题无关。我认为此程序可以使用一些函数使代码更可读,也许您可以使用调试器自己找到问题。
I
I
k<50
found
设置为
0
while
循环的开头。当您成功删除一个数字时,
在下一次添加迭代中再次找到
1
。@surjitsahoo这是因为您在删除一个元素后(或搜索一个元素时)没有重置它.按照Phil说的做,并在开始时在
while
循环中重置它。
int k = 0, found = 0;
//k counts the total elements in the list
while(1){
    switch (choice)
    {
      case 1 :

            printf("Enter the number : ");
            scanf("%d", &num);
            for(i=0; i<=k; i++){
              if(num == number[i]){
                found=1;
                printf("Element already added. Please try again\n");
                break;
              }
            }
            if(found == 0){
              number[k]=num;
              k = k+1;
              printf("Element added successfully\n");
              found = 0;
            }

    break;
    }

}