@mercower26

В чем ошибка в написанном коде, в 5 строке?

#include <stdio.h>
#include <stdlib.h>

int Search(int *x, int k, int n){
	for(int i=0;i<n;i++) {
		//цикл завершится, когда будет найдено нужное значение
	if (x[i] == k) return i;
	}
	//или будут рассмотрены все элементы массива
	return -1;
}
int main(int argc, char *argv[]) {
	system("chcp 1251");
	//функция рандомизации ядра датчика случайных чисел
	srand();
	int *x;
	int n,i;
	printf("Введите размер массива: ");
	scanf("%d",&n);
	x = (int*)malloc(sizeof(int)*n);
	for(i=0;i<n;i++){
		x[i]=rand()%300;
		printf("%d ",x[i]);
	}
	int y;
	printf("\nВведите значение для поиска: ");
	scanf("%d",&y);
	int ind = Search(x,y,n);
	if (ind==-1){
		printf("В массиве нет элемента со значением %d\n",y);
	}
	else
	printf("Элемент %d с индексом %d\n",y,ind);
	free(x);
	system("pause");
	return 0;
}

61dc6c7699356863647721.png
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Воткните эту фразу в гугл транслейт. Там все понятно написано. Нельзя объявлять переменную прямо в цикле (int i) в том режиме, в котором у вас работает компилятор. Надо что-то в свойствах IDE поковырять и включить режим C99.

Ну, или объявляйте переменную i до цикла.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы