2013-04-08 5 views
-4

나는 숫자를 뒤 바꿔이 코드를 작성한 다음과 같은 오류가 나타납니다 기능에서 'INT 주() :이 C 언어 코드에 어떤 문제가 있습니까?

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

typedef unsigned long int uint; 
uint t[11],n; 

void permute(uint k) {  
    uint i,c; 

    if (1==k) {  
    for (i=n; i>0; --i) 

    printf("%d", t[i]); 
    printf("\n"); 
    } 
    else 
    {  
    permute(k-1); 
    for (i=1; i<k; ++i) 
    { 
     c=t[i]; t[i]=t[k]; t[k]=c;  
     permute(k-1);  
     c=t[i]; t[i]=t[k]; t[k]=c;} 
    } 
} 

void run(uint x) 
{  
    n=0; 
    while (x>0) 
    {  
     t[++n]=x%10;  
     x /= 10; 
    }  
    permute(n); 
} 

int main() 
{ 
    printf ("%d\n",run(125)); 
} 
+0

가독성을 위해 포맷하십시오! TIA –

답변

3
printf ("%d\n",run(125)); 

당신은 반환 값을 사용하는 공간 표현의 잘못된 사용 기능 run하지만 run 반환 아무것도

void run(uint x) 

void

함수가 아무 것도 반환하지 않습니다 의미
1

실행 한 결과는 void run(uint x)이지만 printf()의 인수로 전달하면 "%d\n" 형식 문자열과 일치하도록 정수 값을 반환 할 것으로 예상됩니다.

0

runvoid을 반환하며 어떤 값도 반환하지 않을 경우 run 함수에서 정수를 추출 할 수 없습니다. 이것은 유효하지 않습니다.

관련 문제