我这个c++程序哪里出错了?

主程序:
int main()
{
fin >> n ;
for (int i = 0 ; i < n ; ++i) fin >> st[i] ;
for (int i = 0 ; i < n ; ++i)
for (int j = i + 1 ; j < n ; ++j)
for (int k = 0 ; k < st[0].size() ; ++k)
{
int c1 = nu(st[i][k]) , c2 = nu(st[j][k]) ;
if (c1 > c2) swap(c1 , c2) ;
++ap[c1][c2] ;
}
int ans = -INF ;
for (int i = 2 ; i <= 20 ; ++i)
{
for (int j = 0 ; j < 4 ; ++j) list[j][j] = 1 ;
int s = i * 2 - 4 ;
int pl = findm1() ;
while (s > 0)
{
if (list[pl][pl] == 10) pl = findm1() ;
++list[pl][pl] ;
--s ;
}
for (int j = 0 ; j < 4 ; ++j)
for (int k = 0 ; k <= j ; ++k) list[j][k] = 10 ;
s = 60 + i ;
int x , y ; findm2(x , y) ;
while (s > 0)
{
if (list[x][y] == -10) findm2(x , y) ;
--list[x][y] ;
--s ;
}
ans = max(ans , col()) ;
}
fout << ans / (n * (n - 1) / 2) << endl ;

return 0 ;
}

错误:
BioScore.cpp:50:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int k = 0 ; k < st[0].size() ; ++k)

错误比较多。。。

    你没有包括头文件,也没有使用名空间,下面的你有加到c++文件开头吗?没有的话不能使用输入输出流,然后看到你用的是fin和fout,这两个一般定义成文件输入输出

#include <iostream>
#include <fstream>
using namespace std;

2. fin和fout在使用之前应该指定对应文件,下面两句应该加在main函数里。

ifstream fin("input.txt");
ofstream fout("output.txt");

3. 你特地给出的那个其实不是错误是警告,意思是无符号整数和有符号整数直接比较会有问题,推荐你进行强制类型转换,当然警告是可以不管的。

4. 说实话你写的程序我看不懂【Orz我水平比较低也就能看看语法对不对】,推荐你适当加一些注释会比较好。。

5. 最后有一个友情提示,目录名里最好不要包含中文。虽然不知道会出什么问题,但是英文的话是一定不会有问题的。。。

追问

贴上去的程序只是main的主函数,库和名字空间之类的我有加上去的,还有那些未定义的引用是怎么回事?

追答

等等我发现你搞错了一个重要的地方!

编译c++应该用g++,把命令里的gcc改成g++就可以了

编译c才应该用gcc。。。【Orz


------------------------下面的作废----------------------

我遇到的过的有三种情况:

第一种是,main函数里面用到了某个函数,但是那个函数在main之前没有实现或者声明

第二种是没有#include,

看了下那些未定义引用

#include <iostream>
#include <fstream>
#include <string>
#include <cstring>
using namespace std;

第三种是,环境配置有问题,比如装了gcc但是没有装multilib

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-02-11
  警告:类型不兼容;
  意思是你用int型的k跟一个无符号类型的size()做比较了。
  应该是编译器太严格了吧,按理来讲这不会警告的。
  另外,我在图片中看到很多未定义错误,建议你发完整的程序来看看。追问

完整的程序已经发给你了,请你看一下。

追答

    编译通过,0错误,0警告

    所使用的编译器TDM GCC 4.8.1 32bit

    系统环境: Windows 8.1 Pro

应该是编译器的问题,另外你的本地头文件不完整,导致#include 找不到文件。

本回答被提问者采纳
相似回答