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
。什么不起作用请显示输入以及实际和预期的输出。“不起作用”不是一个问题陈述。欢迎使用堆栈溢出!您介意创建一个吗?也与它不工作的问题无关。我认为此程序可以使用一些函数使代码更可读,也许您可以使用调试器自己找到问题。IIk<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;
}
}