C ошибка компиляции: Id вернул 1 статус выхода
по какой-то причине, когда я пытаюсь скомпилировать программу, компилятор говорит, что разрешение отказано, и Id вернул 1 статус выхода. Кто-нибудь может сказать мне, что это значит? Спасибо
#include <stdio.h> /* Library inclusions */
#include "genlib.h"
#include "simpio.h"
int binSearch(int val, int numbers[], int size1); /* prototypes */
void sortArray (int numbers[], int size1);
int indexMax (int numbers[], int low, int high);
void swap (int numbers[], int loc, int loc1);
void getArray (int numbers[], int size1);
void displayArray (int numbers[], int size1);
main()
{
int value, size1;
printf("Enter the number of elements: ");
size1=GetInteger();
int numbers[size1];
getArray(numbers, size1);
sortArray(numbers, size1);
displayArray(numbers, size1);
printf("nEnter value to find: ");
value=GetInteger();
binSearch(value, numbers, size1);
getchar();
}
void sortArray (int numbers[], int size1) /*Function sortArray*/
{
int i , maxInd;
for (i= size1-1; i>=0;i--)
{
maxInd=indexMax(numbers, 0, i);
swap (numbers, i, maxInd);
}
}
void displayArray (int numbers[], int size1) /*Function displayArray*/
{
int i;
printf("This is the sorted set of numbers: n");
for (i=0; i< size1; i++)
{
printf ("%dt", numbers[i]);
}
}
void getArray (int numbers[], int size1) /*Function getArray*/
{
int i;
for (i=0; i<size1; i++)
{
printf ("Enter the values of the %d elements: ", size1);
numbers[i]=GetInteger();
}
}
int indexMax (int numbers[], int low, int high) /*Function indexMax*/
{
int i, maxInd;
maxInd=high;
for (i=low;i<=high;i++)
{
if (numbers[i]>numbers[maxInd])
{
maxInd =i;
}
}
return (maxInd);
}
void swap (int numbers[], int loc, int loc1) /*Function swap*/
{
int temp;
temp=numbers[loc];
numbers[loc]=numbers[loc1];
numbers[loc1]=temp;
}
int binSearch(int val, int numbers[], int size1) /*Function binSearch*/
{
int low, high, mid;
low=0;
high=size1-1;
while(low<=high)
{
mid=(low+high)/2;
if(val<numbers[mid])
{
high=mid-1;
}
else if(val>numbers[mid])
{
low=mid+1;
}
else if(val==numbers[mid])
{
printf("Your number is in location %dn", mid+1);break;
}
else
{
printf("Your value is not in the array.");
}
}
}
выше приведен код алгоритма бинарного поиска, который я пытался скомпилировать.
9 ответов
Я могу догадаться, что старый экземпляр вашей программы все еще работает. Windows не позволяет изменять файлы, которые в настоящее время" используются", и ваш компоновщик не может написать новый .exe на верхней части работающего. Попробуйте остановить / убить свою программу.
Я уверен, что это потому, что вы не закрыть запущенный экземпляр программы, прежде чем пытаться повторно скомпилировать его.
как правило, ld.exe
возвращает 1, когда он не может получить доступ к необходимым файлам. Это обычно включает
- не удается найти файл объекта, который будет связан (или
Access denied
) - не удается найти один или несколько символов для ссылки
- не удается открыть исполняемый файл для записи (или объявления)
программы выглядит совершенно нормально, поэтому второе очко не должно попасть. В обычных случаях это невозможно для ld
не удается открыть объектный файл (если у вас нет неисправного диска и грязной файловой системы), поэтому первая точка также почти невозможна.
теперь перейдем к третьему пункту. Обратите внимание, что Windows не позволяет записывать в файл, когда он используется, поэтому запущенный экземпляр вашей программы предотвращает ld.exe
от написания новой связанной программе.
так что в следующий раз обязательно закройте запущенные программы перед компиляцией.
вы можете компилировать свою программу, в то время как другая программа может работать в фоновом режиме. Во-первых, посмотрите, работает ли другая программа .Закройте его и затем стараются составить.
используя code:: blocks, я решил эту ошибку, выполнив:
свойства рабочей области > цель сборки > целевые файлы сборки
и проверка каждого файла проекта.
1D возвратил 1 ошибку состояния выхода
прежде всего, вы должны создать проект, нажав Файл Создать, а затем проект и дать имя проекта выберите язык c или C++ и выберите пустой также. Тогда ваша программа находится под этим проектом... А затем дайте имя программы save it.... Убедитесь, что вы в рамках какого-то проекта компилируете и запускаете программу...
этот ответ написан для разработчиков C++, потому что меня преследовала такая проблема, как один. Вот решение:
вместо
main()
{
}
введите
int main()
{
}
Итак, основная функция может быть выполнена.
кстати, если вы компилируете исходный файл C / C++ без основной функции для выполнения, там, безусловно, будет сообщение об ошибке, говоря:
"[Error] Id вернул 1 статус существования"
но иногда нам просто не нужна основная функция в файле, в таком случае, просто проигнорируйте сообщение ошибке.
мое решение-попытаться открыть другой файл, который вы можете успешно запустить, что вы делаете на другом ПК, откройте этот файл и запустите его, после этого скопируйте этот файл и создайте новый файл. Попробуйте запустить его.