你好,我拜读了你一个c++程序,但是调试出错,能帮忙么?谢啦

就是这个A1: 设计一个菜单程序,选择数字键1~3分别在屏幕中间输出正三角形、菱形和空心的平行四边形,输入4结束.
你的程序源码是这个
#include<iostream>
#include<iomanip>
using namespace std;

void print1(int n)//输出一个正三角形
{
for(int i=0;i<=n;i++)//输出n行,第一行时i=1,第二行时i=2…对应下面每行*的个数
{
cout<<setw(30-i)<<" ";//在*前打出30-i个空格来占位置,从而达到使*居中的目的,与for(k=0;k<30-i;k++) cout<<" "; 一样的效果。
for(int m=1;m<2*i;m++)//输出一行*, *的个数由循环次数i决定
{
cout<<"*";
}
cout<<endl; //输完一行后换行
}
}

void print2(int n)//输出一个倒三角形
{
for(int i=n-1;i>0;i--)//输出n行,第一行时i=1,第二行时i=2…对应下面每行*的个数
{
cout<<setw(30-i)<<" ";//在*前打出30-i个空格来占位置,从而达到使*居中的目的,与for(k=0;k<30-i;k++) cout<<" "; 一样的效果。
for(int m=1;m<2*i;m++)//输出一行*, *的个数由循环次数i决定
{
cout<<"*";
}
cout<<endl; //输完一行后换行
}
}

void print3(int n)
{
int i,j;
for(i=0;i<n;i++)
{
cout<<setw(30-i)<<" ";
if(i==0||i==n-1)
for(j=0;j<n;j++)
{
cout<<"*";
}
else
for(j=0;j<n;j++)
{
if(j==0||j==n-1)
cout<<"*";
else
cout<<" ";
}
cout<<endl;
}
}

void main()
{
char k;
int m=5,choice;//m为三角形边长或是菱形的短对角线长
do
{
cout<<"请选择(1/2/3/4)\n 1 输出正三角形\n 2 输出菱形 \n 3 平行四边 \n 4 结束 \n ";
cin>>choice;
switch(choice)
{
case 1:print1(m);break;
case 2:print1(m);print2(m);break;//用一个正三角和一个倒三角拼成一个菱形
case 3:print3(m);break;
case 4:exit(1);
}
cout<<"是否继续(y/n)\n";
cin>>k;
}while(k=='y'||k=='Y');
}

我调试的错误信息如下:
--------------------Configuration: 001 - Win32 Debug--------------------
Compiling...
001.cpp
Linking...
LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16
Debug/001.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

001.exe - 2 error(s), 0 warning(s)

因为要考研,所以没时间,只好向您求助了,麻烦了!!

建项目的时候项目类型选错了,应该选择Win32 Console Application,而不是Win32 Application。

建好的工程,也可以直接修改工程类型

菜单:Project->Setting->Link 选项卡,

在下面的Project Options框里,

把/subsystem:windows 改为/subsystem:console ,如图:

追问

谢谢了!我再试试

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-12-28
你这是链接上的问题,程序本身是没有错误的。看你的错误应该是选择了错误的工程,应该选择win 32 console application 。如果还有问题就在setting的link中将/subsystem:windows改成/subsystem:console。不过一般都是你选择的工程类型错了,复制代码,重新选择工程类型,粘贴进去就OK了追问

谢谢了!我再试试

第2个回答  2012-12-28
项目创建错误,正确选择Win32 Console Application,不是Win32 Application.追问

谢谢了!我再试试

你好,我拜读了你一个c++程序,但是调试出错,能帮忙么?谢啦
建项目的时候项目类型选错了,应该选择Win32 Console Application,而不是Win32 Application。建好的工程,也可以直接修改工程类型 菜单:Project->Setting->Link 选项卡,在下面的Project Options框里,把\/subsystem:windows 改为\/subsystem:console ,如图:...

如果一个工程中有多个C++源文件,怎么确定先编译哪个源文件呢
这个讲起来有点多.涉及到一个C++程序的启动过程:我简单地说说,以windows为例,点击一个exe程序后,系统创建一个"进程内核对象",创建4G虚拟内存空间以及其他的一些执行程序需要的资源,然后创建"线程内核对象",启动一个线程(也就是主线程了),这个线程调用一个 C++ startup函数,该函数会初始化 你的程序中...

java单元测试中 为什么单元测试通过了 但程序还是报了错?
如果你对电信的行业知识及网络比较熟悉,你可以在C\/C++等之上多花时间,以期进入电信软件开发领域。如果你对操作系统比较熟悉,你可以学习C\/Linux等等,为Linux内核开发\/驱动程序开发\/嵌入式开发打基础。 如果你想介入到应用范围最广泛的应用软件开发(包括电子商务电子政务系统)的话,你可以选择J2EE或.NET,甚至LAMP组合。每...

...028e2feo内存.该内存不能为read.要终止程序,请单击确定
因此,这种分配失败多见于操作系统使用很长时间后,安装了多种应用程序(包括无意中“安装”的病毒程序),更改了大量的系统参数和系统文件之后。 7、应用程序由于自身BUG引用了不正常的内存指针 在使用动态分配的应用程序中,有时会有这样的情况出现:程序试图读写一块“应该可用”的内存,但不知为什么,这个预料中可用的指...

相似回答
大家正在搜