标题:停车场问题求找错
只看楼主
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
结帖率:60%
 问题点数:0 回复次数:25 
停车场问题求找错
这是题目附件经典的停车场问题
任务书10.rar (7.04 KB)

以下是我的代码,新学不久,见谅。
#include <stdio.h>
#include <string.h>

typedef struct
{
    char a[15];
    int cenghao;
    int cheweihao;
    int shijian;
}point1;

typedef struct
{
    char b[15];
}point2;

void jiashi (point1 *q);   /*定义一个函数jiashi让之前停的车都加5分钟*/

int main()
{
    /****************第一步骤*************************/
    FILE *fq;
    int i,j,item=0;
    double s=0;/*车费s*/
    char x[15];/*车牌号x*/
    point1 c[13]={{"0",0,0,0},{"渝A11",1,1,20},{"渝A12",1,2,15},{"渝A13",1,3,10},{"渝A14",1,4,5}};
    point2 d[3][7];
    fq = fopen("car.dat","a");
    for(i=1;i<5;i++)
    {
        fprintf(fq,"%s\t%d\t%d\t%d\n",c[i].a,c[i].cenghao,c[i].cheweihao,c[i].shijian);
        strcpy(d[1][i].b,c[i].a);
    }

    /******************第二步骤**********************/

    printf("请输入此刻停入停车场的车牌号\n");
    scanf("%s",&x);
    for(i=1;i<7;i++)
    {
        if(d[1][i].b == "\0")
        {
            strcpy(d[1][i].b,x);
            c[i].shijian = 5;
            strcpy(c[i].a,d[1][i].b);
            c[i].cenghao = 1;
            c[i].cheweihao = i;
            fprintf(fq,"%s\t%d\t%d\t%d\n",c[i].a,c[i].cenghao,c[i].cheweihao,c[i].shijian);
            item = 1;
            for(j=1;j<i;j++)
                jiashi(&(c[j]));
            break;
        }
    }
    if(item ==0)
    {
        for(i=1;i<7;i++)
        {
            if(d[2][i].b =="\0")
            {
                strcpy(d[2][i].b,x);
                c[i+6].shijian = 5;
                strcpy(c[i+6].a,d[1][i].b);
                c[i+6].cenghao = 2;
                c[i+6].cheweihao = i;
                fprintf(fq,"%s\t%d\t%d\t%d\n",c[i+6].a,c[i+6].cenghao,c[i+6].cheweihao,c[i+6].shijian);
                item = 1;
                for(j=1;j<i+6;j++)
                    jiashi(&(c[j]));
                break;
            }
        }
    }
   
    if(item ==0)
        printf("当前停车场已满\n");
    fclose(fq);
    fq = fopen("car.dat","w");
    /******************第三步骤*******************/
    printf("请输入此刻离开停车场的车牌号\n");
    scanf("%s",&x);
    for(i=1;i<13;i++)
    {
        if(c[i].a==x)
        {
            s  += c[i].shijian/5*2;
            j = 1;
            while ( j != i )
            {
                fprintf(fq,"%s\t%d\t%d\t%d\n",c[j].a,c[j].cenghao,c[j].cheweihao,c[j].shijian);
            }
            strcpy(d[i/6+1][i%6].b,"\0");/*对应的二维数组清零*/
            break;

        }
    }
    /**/
    printf("您需要车费总和输出吗\n");
    printf("如果需要输出请输入yes\n");
    printf("如果不需要输出请输入no\n");
    scanf("%s",&x);
    if(x=="yes\0")
        printf(" sum = %lf\n",s);
    for(i=1;i<7;i++)
    {
        if(d[1][i].b !=  "\0")
        {
            printf("%s\t%d\t%d\t%d\n",c[i].a,c[i].cenghao,c[i].cheweihao,c[i].shijian);
        }
    }
    for(i=1;i<7;i++)
    {
        if(d[2][i].b !="\0")
        {
            printf("%s\t%d\t%d\t%d\n",c[i+6].a,c[i+6].cenghao,c[i+6].cheweihao,c[i+6].shijian);
        }
    }
    fclose(fq);
    return 0;
}

void jiashi(point1 *q)
{
    q->shijian += 5;   
}

求找错。没有语法性错误,但是结果不对
搜索更多相关主题的帖子: double include shijian 停车场 
2013-01-14 21:43
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
得分:0 
坐等解答。不过学校11点断电
2013-01-14 21:46
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
你至少应该说结果那里不对啊


[fly]存在即是合理[/fly]
2013-01-14 21:55
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
得分:0 
本来第一个输入的车号,肯定有地方停的,可是输出是“停车场已满”还有,文件本来也应该写入数据的,可是文件里面没有东西
2013-01-14 21:58
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
得分:0 
呜呜。来人啊
2013-01-14 22:12
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
得分:0 
而且没输出车费总和
2013-01-14 22:38
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
回复 5楼 wangcaiqusi
程序代码:
for(i=1;i<7;i++)
{
   if(d[1][i].b == "\0")//这里再想想
   {
       strcpy(d[1][i].b,x);
       c[i].shijian = 5;
       strcpy(c[i].a,d[1][i].b);
       c[i].cenghao = 1;


[fly]存在即是合理[/fly]
2013-01-14 22:39
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
得分:0 
另外字符串不能这么比较,x == "yes\0"是不行的,


[fly]存在即是合理[/fly]
2013-01-14 22:43
wangjialong
Rank: 2
等 级:论坛游民
帖 子:77
专家分:95
注 册:2012-11-8
得分:0 
程序代码:
while ( j != i )
            {
                fprintf(fq,"%s\t%d\t%d\t%d\n",c[j].a,c[j].cenghao,c[j].cheweihao,c[j].shijian);
            }
这里似乎有点问题···

新手发言,请多指教。
2013-01-14 22:49
wangcaiqusi
Rank: 1
等 级:新手上路
帖 子:70
专家分:0
注 册:2013-1-10
得分:0 
那字符串应该怎么比较?我要表达的就是该字符串为空。怎么破?
2013-01-15 09:55



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-396593-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.383152 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved