载货量最后为什么显示为0,载货车的名称也不显示

来源:12-2 项目问题解析 1

慕粉4349795

2016-11-17 20:52

package 达达租车系统;

import java.util.Scanner;

class rongLiang {

int zairen;

int zaihuo;

}

class Car {

String name;

int rent;

rongLiang capacity;

}

public class dadadache {

static void showcar(){

}

public static void main(String[] args) {

Car car[]=new Car[6];

for(int i=0;i<6;i++){

car[i]=new Car();

car[i].capacity=new rongLiang();

}

car[0].name="奥迪A4";

car[1].name="马自达6";

car[2].name="皮卡雪6";

car[3].name="金龙";

car[4].name="松花江";

car[5].name="依维河";

car[0].rent=500;

car[1].rent=400;

car[2].rent=450;

car[3].rent=800;

car[4].rent=400;

car[5].rent=1000;

car[0].capacity.zairen=4;

car[1].capacity.zairen=4;

car[2].capacity.zairen=4;

car[2].capacity.zaihuo=2;

car[3].capacity.zairen=20;

car[4].capacity.zaihuo=4;

car[5].capacity.zaihuo=20;

System.out.println("欢迎使用达达租车系统\n你是否要租车:1是0否");

Scanner input=new Scanner(System.in);

int n=input.nextInt();

if(n==1){

System.out.println("你可租车的类型及其价目表:");

System.out.println("序号\t汽车名称\t    租金\t容量");

for(int i=0;i<6;i++){

System.out.println(i+1+"\t"+car[i].name+"\t"+car[i].rent+"元/天");

if(car[i].capacity.zaihuo==0)

System.out.println("    载人:"+car[i].capacity.zairen+"人");

else if(car[i].capacity.zairen==0)

System.out.println("    载货:"+car[i].capacity.zaihuo+"吨");

else

System.out.println("    载人:"+car[i].capacity.zairen+"人     载货:   "+car[i].capacity.zaihuo+"吨");

}

System.out.println("请输入你要租车的数量:");

n=input.nextInt();

int s[]=new int[n];

for(int i=1;i<=n;i++){

System.out.println("请输入第"+i+"辆车的序号:");

s[i-1]=input.nextInt();

}

System.out.println("请输入租车天数:");

int t=input.nextInt();

System.out.println("你的账单:");

System.out.println("***可载人的车有:");

int sum=0;

for(int i=0;i<n&&car[i].capacity.zairen!=0;i++){

System.out.println(car[s[i]-1].name+" ");

sum+=car[s[i]-1].capacity.zairen;

}

System.out.println("共载人"+sum+"人");

System.out.println("***可载货的车有:");

sum=0;

System.out.println("***********************");

for(int i=0;i<n&&car[i].capacity.zaihuo!=0;i++){

System.out.println("***********************");

System.out.println(car[s[i]-1].name+"  ");

sum+=car[s[i]-1].capacity.zaihuo;

}

System.out.println("共载货:"+sum+"吨");

sum=0;

for(int i=0;i<n;i++)

sum+=car[s[i]-1].rent*t;

System.out.println("***租车总价格:"+sum+"元");

}

else

System.exit(0);

}

}


写回答 关注

2回答

  • 慕粉1403257382
    2016-11-17 22:57:56
    已采纳

    for(int i=0;i<n;i++){

    System.out.println("***********************");

    System.out.println(car[s[i]-1].name+"  ");

    if(car[s[i]-1].capacity.zaihuo!=0)

    sum+=car[s[i]-1].capacity.zaihuo;

    }

    我改成了这样,试了一下可以输出载货值了

    慕粉1403... 回复慕粉4349...

    你的1是租车,0是不租车。我要输入个字符串什么的是不是要有个提示什么的。然后让他重新输入

    2016-11-18 09:51:26

    共 3 条回复 >

  • 慕粉1403257382
    2016-11-17 22:44:10

    for(int i=0;i<n&&car[i].capacity.zaihuo!=0;i++)这里循环错了,n是1,但是car[]下标是从0开始的找的第一个是奥迪车的zaihuo,奥迪车的zaihuo=0所以条件不成立循环体没有执行。就没有输出可载货多少。

    慕粉4349...

    但是还有一个问题,就是每次输出可载货和可载人的车时,总是把所有选择的车辆都显示了,和题意不相符合

    2016-11-18 09:31:18

    共 1 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530652 学习 · 6091 问题

查看课程

相似问题