为嘛因为这种无聊的东西而蛋疼一个晚上呢,
症结是:
一:基础不扎实,太过于依赖编译器
二:程序运行起来一复杂,就不太愿意用脑想想,这是致命伤啊
三:老毛病,没有考虑全面。
哈哈,准备夜宵了,开心!!饿死了都。
对了,文件读取那里,挺实用的。留着以后自己用,嘿嘿。。。
来吧,程序,估计只有我自己看的懂了。。。呵呵(无聊的东西,自己把玩吧)
#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]];//下一次车]]
>