我已编写此代码以置换任何数字,并出现以下错误: 在函数'int main()'中: 无效使用void表达式
#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 :(得分:3)
printf ("%d\n",run(125));
您正在使用函数run
的返回值,但run
不返回任何内容
void run(uint x)
void
表示函数不返回任何内容,
答案 1 :(得分:1)
您已声明以void run( uint x)
运行,但您将其作为参数传递给printf()
,它希望它返回一个整数值以匹配"%d\n"
格式字符串。< / p>
答案 2 :(得分:0)
run
返回void
,当它没有返回任何值时,您无法从函数run
“提取”一个整数。这是无效的。