Problem ссылка: https://www.codechef.com/problems/PERMUT2Может кто-нибудь, пожалуйста, помогите мне с ошибкой в алгоритме
Проблема: Получение не неоднозначным для всех тестовых случаев. В выполнении программы абсолютно нет проблем, нет ошибок.
Можете ли вы указать на ошибку в моем код/алгоритм:
#include <stdio.h>
#include <stdlib.h>
int index_func(int number, int *array, int x);
int main(){
int n;
scanf("%d", &n);
int *nums = (int*)malloc(n*sizeof(int));
int i;
for(i=0; i<n; i++){
scanf("%d", &nums[i]);
}
int j;
int counter = 0;
for(j=0; j<n; j++){
if(nums[j] != index_func(j+1, nums, n)){
counter = 1;
break;
}
}
if(counter == 0){
printf("ambiguous\n");
}else{
printf("non ambiguous\n");
}
return 0;
}
int index_func(int number, int *array, int x){
int z, index;
for(z=0; z<x; z++){
if(number == array[z]){
index = z;
return z;
}
}
}
Добро пожаловать в переполнение стека! Похоже, вам, возможно, потребуется научиться использовать отладчик для выполнения вашего кода. С хорошим отладчиком вы можете выполнить свою программу по очереди и посмотреть, где она отклоняется от ожидаемого. Это важный инструмент, если вы собираетесь заниматься программированием. Дальнейшее чтение: [Как отлаживать небольшие программы] (http://ericlippert.com/2014/03/05/how-to-debug-small-programs/). –
'int index_func (int number, int * array, int x)' должен возвращать что-то, если 'number! = Array [z]' и переменной 'index' установлено, но никогда не используется. – Michi
@ Мичи, если я просто положу это 'return z;' после цикла for и ничего не делается, если number! = array [z]? –