c语言在编译时没有错误为什么连接会报错呢
错误提示Linking...LIBCD.lib(wincrt0.obj):errorLNK2001:unresolvedexternalsymbol_WinMain@16...
错误提示
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/a.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
程序如下
#include<stdio.h>
#define N 10
void setdata(int(*s)[N],int n)
{int i,j;
for(i=0;i<n;i++)
{ s[i][j]=1;s[i][0]=1;}
for(j=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{for(j=0;j<=i;i++) printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{ int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
} 展开
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/a.exe : fatal error LNK1120: 1 unresolved externals
执行 link.exe 时出错.
程序如下
#include<stdio.h>
#define N 10
void setdata(int(*s)[N],int n)
{int i,j;
for(i=0;i<n;i++)
{ s[i][j]=1;s[i][0]=1;}
for(j=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{for(j=0;j<=i;i++) printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{ int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
} 展开
3个回答
展开全部
这个错误属于主函数入口错误,你的主函数为mian()而编译器默认设置为WinMain。
修改方法为:
1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS
2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.
3.保存设置,Rebuild All.
修改方法为:
1.进入project->setting->c/c++, 在category中选择preprocessor,在processor definitions中删除_CONSOLE, 添加_WINDOWS
2.进入project->setting->Link, 在Project options中将 /subsystem:console改为/subsystem:windows.
3.保存设置,Rebuild All.
更多追问追答
追问
大侠,那个你说让修改的地方直接就是windows,不是console
追答
那第一步骤中设置是否也是一样的呢?
展开全部
#include<stdio.h>
#define N 10
void setdata(int(*s)[N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
s[i][j]=1;s[i][0]=1; // j没有 初始化 就被使用了
}
for(j=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{
int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=i;i++) printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{
int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
}
使用了 没有初始化 的 变量, 在 win-TC 里 可以编译通过,但运行时 会导致程序 混乱
在C++ 里 编译 会提示出错。。
程序中 也有 多处错误,给你个 修改好的吧:
#include<stdio.h>
#define N 10
void setdata(int(*s)[N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
s[i][i]=1;s[i][0]=1;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{
int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{
int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
}
#define N 10
void setdata(int(*s)[N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
s[i][j]=1;s[i][0]=1; // j没有 初始化 就被使用了
}
for(j=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{
int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=i;i++) printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{
int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
}
使用了 没有初始化 的 变量, 在 win-TC 里 可以编译通过,但运行时 会导致程序 混乱
在C++ 里 编译 会提示出错。。
程序中 也有 多处错误,给你个 修改好的吧:
#include<stdio.h>
#define N 10
void setdata(int(*s)[N],int n)
{
int i,j;
for(i=0;i<n;i++)
{
s[i][i]=1;s[i][0]=1;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
}
void outdata(int s[][N],int n)
{
int i,j;
printf("杨辉三角形:\n");
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
printf("%6d",s[i][j]);
printf("\n");
}
}
main()
{
int y[N][N],n=7;
setdata(y,n);
outdata(y,n);
}
追问
大侠,好像不行,我用你的程序,连接时还是出现同样的问题
追答
我在 win-tc 里运行了 没错啊
如果 是 VC 需要 设置 一下 编译器
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你真是VC的吧 是不是要加上头文件 #include "stdafx.h'
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询