2013-07-18 69 views
6

Vì một số lý do, khi tôi thử biên dịch chương trình, trình biên dịch cho biết quyền bị từ chối và Id trả lại 1 trạng thái thoát. Bất cứ ai có thể cho tôi biết điều đó có nghĩa là gì? Cảm ơn bạnLỗi biên dịch C: Id trả lại 1 trạng thái thoát

#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 ("%d\t", 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 %d\n", mid+1);break;  
       } 
       else 
       { 
           printf("Your value is not in the array.");   
       } 
    } 
} 

Ở trên là mã thuật toán tìm kiếm nhị phân mà tôi đã cố gắng biên dịch.

+1

Bạn có thể thêm chương trình của mình và lệnh trình biên dịch bạn đang sử dụng để biên dịch không? –

+0

Bạn có quyền đọc trên tệp nguồn không? Bạn có quyền ghi vào thư mục không? – jxh

+0

Đây không phải là câu hỏi lập trình - mà là câu hỏi về hoạt động của hệ thống. Ở mức tối thiểu, bạn nên chỉ định hệ điều hành của mình. –

Trả lời

8

Tôi có thể đoán, phiên bản cũ của chương trình của bạn vẫn đang chạy. Windows không cho phép thay đổi các tệp hiện đang được sử dụng và trình liên kết của bạn không thể ghi tệp .exe mới trên đầu tệp đang chạy. Hãy thử dừng/giết chương trình của bạn.

+1

Nó vẫn đưa ra thông báo lỗi tương tự sau khi giết nhiệm vụ. Có thể có gì đó sai với mã không? –

+0

Chính xác, khởi động lại máy tính của tôi đã giải quyết được sự cố (không thể tự xóa bằng tay vì tôi không thể tìm thấy chương trình đang chạy trong Trình quản lý tác vụ) –

-3

có thể là bạn vừa nói chính {.... Tôi sử dụng int chính {khi tôi bắt đầu chính.

+2

Không. 'int' được giả định trong C khi không có kiểu trả về nào được xác định. – ApproachingDarknessFish

-2

Câu trả lời này được viết cho các nhà phát triển C++, bởi vì tôi bị ám ảnh bởi vấn đề như vậy. Dưới đây là giải pháp:

Thay vì

main() 
{ 

} 

vui lòng nhập

int main() 
{ 

} 

nên chức năng chính có thể được thực thi.

Bằng cách này, nếu bạn biên dịch C/C++ file nguồn không có chức năng chính để thực hiện, có chắc chắn sẽ là một thông điệp lỗi nói:

"[Error] Id returned 1 exist status"

Nhưng đôi khi chúng ta không cần chức năng chính trong tệp, trong trường hợp này, chỉ cần bỏ qua thông báo lỗi.

-3

nó có vẻ như thể nó đến khi u có một phiên bản biên soạn trước của chương trình của bạn chạy

+1

Đó là những gì câu trả lời được chấp nhận (4 tuổi) hiện có nói. Câu trả lời của bạn không thêm gì cả. – melpomene

-2

Giải pháp của tôi là cố gắng mở một tập tin mà bạn có thể chạy thành mà bạn làm ở một máy tính khác, mở tập tin đó và chạy nó, sau đó sao chép tập tin đó và tạo một tập tin mới. Hãy thử chạy nó.

0

Tôi đặt cược chắc chắn, đó là vì bạn đã không đóng phiên bản đang chạy của chương trình trước khi cố gắng biên dịch lại nó.

Nói chung, ld.exe trả về 1 khi không thể truy cập tệp được yêu cầu. Điều này thường bao gồm

  • Không thể tìm thấy tập tin đối tượng được liên kết (hoặc Access denied)
  • Không thể tìm thấy một hoặc nhiều biểu tượng để liên kết
  • Không thể mở tập tin thực thi cho văn bản (hoặc AD)

Chương trình trông hoàn toàn ổn, do đó, điểm thứ hai không nên nhấn. Trong các trường hợp thông thường, không thể ld không thể mở tệp đối tượng (trừ khi bạn có ổ đĩa bị lỗi và hệ thống tệp bẩn), vì vậy điểm đầu tiên cũng gần như không thể.

Bây giờ chúng tôi sẽ đến điểm thứ ba.Lưu ý rằng Windows không cho phép ghi vào tệp khi đang sử dụng, do đó, phiên bản chạy chương trình của bạn ngăn không cho ld.exe ghi chương trình được liên kết mới vào đó.

Vì vậy, lần sau hãy chắc chắn đóng các chương trình đang chạy trước khi biên dịch.

0

Bạn có thể biên dịch chương trình của mình trong khi một chương trình khác có thể đang chạy ở chế độ nền. Thứ nhất, hãy xem chương trình khác có đang chạy hay không .Đóng nó và sau đó thử biên dịch ro.

+0

Vui lòng chỉnh sửa câu trả lời của bạn và cung cấp thêm một số thông tin. Câu trả lời của bạn trông giống như một bình luận chứ không phải là một câu trả lời. – Siraj

0

Sử dụng mã :: khối, tôi đã giải quyết được lỗi này bằng cách thực hiện:

tính workspace> xây dựng mục tiêu> xây dựng file đích

và kiểm tra tất cả các hồ sơ dự án.

Các vấn đề liên quan