Повторите программу еще раз Search Array Element - PullRequest
1 голос
/ 20 июня 2020

Повторите программу еще раз для элемента массива поиска.

 #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 иначе он выйдет из программы. В этом коде я хочу создать массив, затем выполнить поиск элемента после этого показа результатов и, наконец, повторить код из поиска в блоке элемента.

Ответы [ 3 ]

0 голосов
/ 20 июня 2020

Я запустил ваш код, и, похоже, все работает правильно, кроме этой строки:

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

Удалите \ t из scanf, и он должен работать правильно. Вы не хотите искать символ табуляции, а только символ «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;
}
0 голосов
/ 21 июня 2020

Первый способ, который пришел мне в голову:

#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;
}

0 голосов
/ 20 июня 2020

Вложите блок кода, который хотите повторить через некоторое время l oop, что-то вроде

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