题目的程序为什么会出错?

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:59:15
#include <stdio.h>

int fun(unsigned n, int *zero)
{
int count=0,max=0,t;
do
{
t=n%10;
/********found********/
if(t==0)
count++;
if(max<t)
max=t;
n=n/10;
}while(n);
/********found********/
*zero=count;
return max;
}
main()
{
unsigned n;
int zero,max;
printf("\nInput n(unsigned): ");
scanf("%d",&n);
max=fun(n,&zero);
printf("\nThe result: max=%d zero=%d\n",max,zero);
}

是道改错题,按照答案的改了错的地方,但是在vc++中运行还是错的
错误:
Linking...
MODI40.OBJ : error LNK2005: _fun already defined in BLANK40.OBJ
MODI40.OBJ : error LNK2005: _main already defined in BLANK40.OBJ
Debug/BLANK40.exe : fatal error LNK1169: one or more multiply defined symbols found
执行 link.exe 时出错.

BLANK40.exe - 1 error(s), 0 warning(s)

怎么回事?其实经常碰到题目按照答案改好后还是错误的,如

你应该是把多个程序放到一个工程中了吧?
一个工程只能是一个完整的程序,也只能有一个main()。
对于初学者来说,一般甚至只要一个文件即可。

. .... . 你怎么建的工程?..

... 我这编译运行. 没显示错误.

.....额,, 我感觉你建的是win32程序, 而不是win32控制台程序

我编译也没错,可能楼主的VC问题

关掉再开过就没有问题啦!