再次重复搜索数组元素的程序

Repeat the Program for again Search Array Element

重复搜索数组元素的程序。

 #include <stdio.h>
#define MAX_SIZE 100  

  int main()
  {
    int arr[MAX_SIZE];
    int size, i, toSearch, found;
    char repeat;

    printf("Enter the size of an array\n");
    scanf("%d", &size);
    printf("Enter the array elements\n");
    for (i = 0; i < size; i++) 
    {
      scanf("%d", &arr[i]);
    }
do{
printf("\nEnter element to search: ");
scanf("%d", &toSearch);
found = 0; 

 for(i=0; i<size; i++)
  {
      if(arr[i] == toSearch)
      {
          found = 1;
          break;
     }
 }
 
  if(found == 1)
  {
      printf("\n%d is found at position %d", toSearch, i + 1);
  }
 else
  {
      printf("\n%d is not found in the array \n", toSearch);
  }
  printf("\n \n \nPress Y to again Search Any Element in Array\n \nPress Any other Key to Exit the Program\n\n");
scanf(" %c \t",&repeat);
}
while(repeat == 'y' || repeat == 'Y' );
return 0;

}

我想在用户输入 Y || 时重复我的程序y 否则它会退出程序。 在这段代码中,我想制作一个数组,然后在显示结果后搜索元素,最后重复搜索元素块中的代码。

将要在 while 循环中重复的代码块括起来,例如

bool flag = false;
while(flag==true) {
   //Code block
   scanf("%c",&input)
   if((input == 'y') || (input == 'Y')) {flag = true;}
   else {flag = false;}
}

我 运行 你的代码和除了这一行之外的一切似乎都正常工作:

scanf(" %c \t",&repeat);

从 scanf 中删除 \t 它应该可以正常工作。您不想扫描制表符,只扫描 'Y' 或 'y' 字符。

此外,您对换行符的使用有点不寻常。尝试将换行符放在字符串的末尾而不是开头。

更新代码:

#include <stdio.h>
#define MAX_SIZE 100  

int main() {
  int arr[MAX_SIZE];
  int size, i, toSearch, found;
  char repeat = ' ';

  printf("Enter the size of an array\n");
  scanf("%d", &size);
  printf("Enter the array elements\n");
  for (i = 0; i < size; i++) 
    scanf("%d", &arr[i]);
    
  do{
    printf("Enter element to search: \n");
    scanf("%d", &toSearch);
    found = 0; 

    for(i=0; i<size; i++) {
      if(arr[i] == toSearch) {
        found = 1;
        break;
      }
    }
    
    if(found == 1)
      printf("%d is found at position %d\n", toSearch, i + 1);
    else printf("%d is not found in the array\n", toSearch);
    
    printf("Press Y to again Search Any Element in Array\nPress Any other Key to Exit the Program\n");
    scanf(" %c",&repeat);
  }
  while(repeat == 'y' || repeat == 'Y' );
  return 0;
}

我想到的第一个方法:

#include <stdio.h>
#define MAX_SIZE 100

int main()
{
    int arr[MAX_SIZE];
    int size, i, toSearch, found;
    char repeat;

    printf("Enter the size of an array\n");
    scanf("%d", &size);
    printf("Enter the array elements\n");
    for (i = 0; i < size; i++)
    {
        scanf("%d", &arr[i]);
    }
    do
    {
        printf("\nEnter element to search: ");
        scanf("%d", &toSearch);
        found = 0;

        for (i = 0; i < size; i++)
        {
            if (arr[i] == toSearch)
            {
                found = 1;
                break;
            }
        }

        if (found == 1)
        {
            printf("\n%d is found at position %d", toSearch, i + 1);
        }
        else
        {
            printf("\n%d is not found in the array \n", toSearch);
        }
        printf("\n \n \nPress Y to again Search Any Element in Array\n \nPress Any other Key to Exit the Program\n\n");
        repeat = getchar();
        repeat = getchar();
        if(repeat == 'y' || repeat == 'Y') {
            continue;
        }
        else {
            break;
        }
    } while (1);
    return 0;
}