-5

任意の数値を並べ替えるためにこのコードを書きましたが、次のエラーが表示されます: In function 'int main()': invalid use of void expression

#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)); 
}
4

3 に答える 3

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

関数の戻り値を使用してrunいますが、run何も返しません

void run(uint x)

void関数が何も返さないことを意味し、

于 2013-04-08T17:00:14.313 に答える
1

run as を宣言しましたが、書式文字列に一致させるために整数値を返すことを期待するvoid run( uint x)引数としてそれを渡しています。printf()"%d\n"

于 2013-04-08T17:01:01.830 に答える