注册 登录
编程论坛 C++教室

求解 :在最后为什么输出的整形数字是-858993460,,应该不是溢出错误

licai123 发布于 2014-08-06 10:34, 878 次点击
/*判断三点是否在同一半平面*/
#include <iostream>
using namespace std;

int main()
{
    int x,y ,a,b,c,d;
    int count1=0;
    int count2=0;
    int X[3],Y[3],M[3],N[3];
    cout<<"请输入直线的三个参数值:";
    cin>>a>> b >>c;
    for(int i=0;i<3;i++)
    {
    cout<<"请输入坐标值:";
    cin>>x>>y;
    d=a*x+y*b;
    int m=0,n=0;
    if(d>c)
    {
        X[m++]=x;Y[m++]=y;  count1++;
    }
    if(d<c)
    {
        M[m++]=x;N[m++]=y;count2++;
    }

    }
    if((count1>2)||(count2>2))
        {cout<<"三点在同一半平面"<<endl;
    for(int i=0;i<3;i++)
            cout<<"("<<X[i]<<","<<Y[i]<<")"<<endl;}
    if((count1==2)&(count2==1))
        {cout<<"1.在同一半平面的是:"<<"\t";
        for(int i=0;i<2;i++)
            cout<<"("<<X[i]<<","<<Y[i]<<")"<<endl;}
    if((count1==1)&(count2==2))
        {cout<<"2.在同一半平面的是:"<<"\t";
        for(int i=0;i<2;i++)
            cout<<"("<<M[i]<<","<<N[i]<<")"<<endl;}
        
    return 0;

}
6 回复
#2
funyh2502014-08-06 12:00
X[m++]明显溢出

X[m];
m++;
用两句话比较明了
#3
i802862014-08-06 13:03
int X[3],Y[3],M[3],N[3]改一下:int X[3] = { 0 }, Y[3] = { 0 }, M[3] = { 0 }, N[3] = { 0 };
数组初始化
#4
licai1232014-08-06 18:55
回复 3 楼 i80286
初始化后,他输出的是初始化的值啊,怎么回事呢
#5
licai1232014-08-06 19:01
回复 2 楼 funyh250
我换过了再试还是不行啊
#6
wp2319572014-08-06 19:07
你想干嘛呢
#7
i802862014-08-07 11:12
回复 4 楼 licai123
你的思路或者算法有问题,至少我没看明白这段代码的作用
1