今天帮数模的同学编了一道蛋疼的暴力图程序,结果,变量一来就来了18个,然后有int 型的,还有double型的,变量一多,结果就double值赋值给了int,还有map[a][b]=value时,忘记了这是一个无向图,要两种都赋值。。结果可想而知,debug了半天,活该连晚饭都没得吃。。。

    为嘛因为这种无聊的东西而蛋疼一个晚上呢,

    症结是:

                一:基础不扎实,太过于依赖编译器

                二:程序运行起来一复杂,就不太愿意用脑想想,这是致命伤啊

                三:老毛病,没有考虑全面。

    哈哈,准备夜宵了,开心!!饿死了都。

    对了,文件读取那里,挺实用的。留着以后自己用,嘿嘿。。。

来吧,程序,估计只有我自己看的懂了。。。呵呵(无聊的东西,自己把玩吧)

#include<iostream> 
#define N 3 
#define Max 100000 
using namespace std; 
 
int alldis[Max]; 
 
int main(void

    int i,count,point[15],a,b,k,h,dis,pointpath[15],map[15][15],min,temp; 
    double rub[15],rub1[15]; 
    double volume,allval,totalval; 
 
    char str[100],ch,tempch; 
 
    //for(i=1;i<=N;i++) 
    //    memset(map[i],0,sizeof(map[i])); 
    FILE *f3; 
    f3=fopen("fact.out","r"); 
//    FILE *fp2=fopen("path","r"); 
/*    while(fp!=(FILE*)NULL) 
    
         
    }*/ 
    cout<<"输入垃圾车的容量:"<<endl; 
    scanf("%lf",&volume); 
    allval=0
        cout<<"依次输入1~N每个点的垃圾的质量:"<<endl; 
    for(i=1;i<=N;i++) 
    { 
     
        scanf("%lf",&rub[i]);//每个点垃圾总量 
     
        allval+=rub[i]; 
    } 
    cout<<"依次从1~N,输入从缓冲区到每个点之间的距离:"<<endl; 
    for(i=1;i<=N;i++) 
    { 
         
        scanf("%d",&pointpath[i]);//从垃圾站到每个点的距离 
    } 
 
        //读取point与point之间的路径长度 
        do 
        { 
         
            cout<<"请输入点到点和他们之间的距离:"<<endl; 
            scanf("%d%d%d",&a,&b,&temp); 
            map[b][a]=map[a][b]=temp;//路径之间的长度 
            cout<<"输入结束了么?Y/N"<<endl; 
            getchar(); 
            scanf("%c",&ch); 
        }while(ch=='N'); 
 
 
    min=2000000000
        h=0
     k=0
        count=1
    while(!feof(f3)) 
    { 
        tempch=fgetc(f3); 
     
        str[h++]=tempch;     
        if(tempch==' '||tempch=='\n'
        { 
            str[h]='\0'
            h=0
            point[++k]=atoi(str); 
 
             
            if(tempch=='\n')//每一次重新开始计算 
            { 
                for(int o=1;o<=N;o++) 
                {        rub1[o]=rub[o]; 
                        cout<<rub1[o]<<"   "
                } 
                cout<<endl; 
            //    for(o=1;o<=3;o++) 
            //        cout<<point[o]<<endl; 
                alldis[count]=0
                totalval=0;//每一次车累计的质量 
                for(i=1;i<=N;i++) 
                    printf("缓冲区到点的距离是:%d\n",pointpath[i]); 
                 
                dis=pointpath[point[1]];//dis是计算每一个车回去的总距离 
                cout<<"dis为"<<dis<<endl; 
                for(i=1;i<=N;i++) 
                { 
                     
                    totalval+=rub1[point[i]]; 
                    if(totalval==volume) 
                    {    cout<<"哈哈1"<<endl; 
                        dis+=pointpath[point[i]];//加上回去的路程 
                        alldis[count]+=dis;//累积到总距离 
                        dis=pointpath[point[i+1]];//下一次车]] >

posted on 2011-06-03 19:55  cchun  阅读(287)  评论(0)    收藏  举报