• 木有晚餐吃的教训暴力图的时候


        今天帮数模的同学编了一道蛋疼的暴力图程序,结果,变量一来就来了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]];//下一次车]] >

  • 相关阅读:
    将centos_yum源更换为阿里云(官方文档)
    JIRA 破解文件研究(Win 7环境)
    告别拖延症,你也可以轻松做到
    VS2015 + EF6连接MYSQL
    start-stop-daemon
    stm32开发板无法正常写入的问题或者写入后无法正常运行的问题
    进制转换
    回文判断程序
    C语言结构体指针的引用问题
    升级/安装主题插件提示权限不足 输入FTP解决办法
  • 原文地址:https://www.cnblogs.com/cchun/p/2520104.html
Copyright © 2020-2023  润新知