xxss666 2021-12-21 21:51 采纳率: 42.9%
浏览 157
已结题

parse error at end of input 怎样解决(语言-c语言)

parse error at end of input
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>

double w1 = 2.07;
double w2 = 4.07;
double w3 = 6.07;
double s1 = 1.57;
double s2 = 1.07;
double p = 1.36;


static int count = 0;
struct person
{
 char number[100];     //用户编号
 char name[20];        // 姓名
 double water_1;       //自来水用水量
 double water_2;       //自备井用水量
 double balance;         //存款,初始值为0
};
struct person info[100];  //利用结构体数组,创建100个用户
void input();             //输入用户信息
void search();            //输入用户编号可以查询该用户,并显示该户人家的水费明细(水费计算等过程包括在其中),已用水量到下一档的剩余额度。
void balance();           //余额管理,能够进行扣费运算,能够充值。
void recharge();          //充值
void deduction();         //扣费
void print();       //主菜单
void assi();              //对用户余额赋初始值
void set();               //水价设置


//主菜单
void print(){
 system("cls");
 printf("---------------主界面-------------\n");
 printf("**********************************\n");
 printf("**********1 添加用户信息**********\n");
 printf("**********2    查  询   **********\n");
 printf("**********3   余额管理  **********\n");
 printf("**********4    设  置   **********\n");
 printf("**********5    退  出   **********\n");
 printf("**********************************\n");
 printf("请选择(1-4):");

}

//子菜单
void print_1(){

}
void input()    //输入相关数据
{
    system("cls");
 int i;
    char ch[2];
 printf("是否输入(Y/N):");
 scanf("%s",ch);
 while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){
  system("cls");
  printf("用户编号:");
  scanf("%s",&info[count].number);
  printf("姓名:");
  scanf("%s",&info[count].name);
  printf("自来水用水量(立方米):");
  scanf("%lf",&info[count].water_1);
  printf("自备井用水量(立方米):");
  scanf("%lf",&info[count].water_2);
  info[count].balance = 0;
  count++;
  printf("是否继续输入(Y/N):");
  scanf("%s",ch);
 }
 printf("输入完成!\n按任意键返回");
}
//查询操作
void search(){
 system("cls");
 int i;
 char n[100];
 printf("请输入查询的用户编号:");
 scanf("%s",&n);
 for(i = 0;i < count + 1;i++){
  if(strcmp(info[i].number,n)==0){

    int x;//x为查询选项
    float  y,s,m1,m2,m3,e,z,a;
    //y为该住户用水量,s为居民本月总水费,m1为水费,m2为水资源费,m3为污水处理费.e为到下一档的额度,z为账户余额,a为充值金额
    printf("请选择查询项目:");
    scanf("%d",&x);
    switch(x)
    {
        case 1: //功能1为自来水用户查询
        printf("输入该用户用水量:输入账户余额:\n");
        scanf("%f%f",&y,&z);
        if (y<=180)
        {
        s=y*5.0;m1=y*2.07;m2=y*1.57;m3=y*1.36;e=180-y;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
        }
        else if(y>180&&y<260)
        {
        s=y*7.0;m1=y*4.07;m2=y*1.57;m3=y*1.36;e=260-y;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
         }
        else if(y>=260)
        {
        s=y*9.0;m1=y*6.07;m2=y*1.57;m3=y*1.36;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费: %.2f\n账户余额%.2f\n",s,m1,m2,m3,z);
        }
        break;
        case 2://功能2为自备井用户查询
        printf("输入该用户用水量:输入账户余额:\n");
        scanf("%f%f",&y,&z);
        if(y<=180)
        {
        s=y*4.5;m1=y*2.07;m2=y*1.07;m3=y*1.36;e=180-y;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
        }
        else if(y>180&&y<260)
        {
        s=y*6.5;m1=y*4.07;m2=y*1.07;m3=y*1.36;e=260-y;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
        }
        else if(y>=260)
        {
        s=y*8.5;m1=y*6.07;m2=y*1.07;m3=y*1.36;z=z-s;
        printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费: %.2f\n账户余额%.2f\n",s,m1,m2,m3,z);
        }
        break;
        case 3://功能3为余额充值
        printf("请输入账户余额:  输入充值金额:\n");
        scanf("%.2f%.2f",&a,&z);
        z=a+z;
        printf("您的账户余额为:%.2f\n",z);

    }
  }


  • 写回答

1条回答 默认 最新

  • qzjhjxj 2021-12-21 22:03
    关注

    供参考:

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<conio.h>
    #include<dos.h>
    double w1 = 2.07;
    double w2 = 4.07;
    double w3 = 6.07;
    double s1 = 1.57;
    double s2 = 1.07;
    double p = 1.36;
    
    static int count = 0;
    struct person
    {
     char number[100];     //用户编号
     char name[20];        // 姓名
     double water_1;       //自来水用水量
     double water_2;       //自备井用水量
     double balance;         //存款,初始值为0
    };
    struct person info[100];  //利用结构体数组,创建100个用户
    void input();             //输入用户信息
    void search();            //输入用户编号可以查询该用户,并显示该户人家的水费明细(水费计算等过程包括在其中),已用水量到下一档的剩余额度。
    void balance();           //余额管理,能够进行扣费运算,能够充值。
    void recharge();          //充值
    void deduction();         //扣费
    void print();       //主菜单
    void assi();              //对用户余额赋初始值
    void set();               //水价设置
    
    //主菜单
    void print(){
     system("cls");
     printf("---------------主界面-------------\n");
     printf("**********************************\n");
     printf("**********1 添加用户信息**********\n");
     printf("**********2    查  询   **********\n");
     printf("**********3   余额管理  **********\n");
     printf("**********4    设  置   **********\n");
     printf("**********5    退  出   **********\n");
     printf("**********************************\n");
     printf("请选择(1-4):");
    }
    //子菜单
    void print_1(){
    }
    void input()    //输入相关数据
    {
      system("cls");
      int i;
      char ch[2]="y";
      //printf("是否输入(Y/N):");
      //scanf("%s",ch);
      while(strcmp(ch,"Y")==0||strcmp(ch,"y")==0){
      system("cls");
      printf("用户编号:");
      scanf("%s",&info[count].number);
      printf("姓名:");
      scanf("%s",&info[count].name);
      printf("自来水用水量(立方米):");
      scanf("%lf",&info[count].water_1);
      printf("自备井用水量(立方米):");
      scanf("%lf",&info[count].water_2);
      info[count].balance = 0;
      count++;
      printf("是否继续输入(Y/N):");
      scanf("%s",ch);
     }
     printf("输入完成!\n按任意键返回");
    }
    //查询操作
    void search(){
     system("cls");
     int i;
     char n[100];
     printf("请输入查询的用户编号:");
     scanf("%s",&n);
     for(i = 0;i < count + 1;i++){
      if(strcmp(info[i].number,n)==0){
        int x;//x为查询选项
        float  y,s,m1,m2,m3,e,z,a;
        //y为该住户用水量,s为居民本月总水费,m1为水费,m2为水资源费,m3为污水处理费.e为到下一档的额度,z为账户余额,a为充值金额
        printf("请选择查询项目:");
        scanf("%d",&x);
        switch(x)
        {
            case 1: //功能1为自来水用户查询
            printf("输入该用户用水量:输入账户余额:\n");
            scanf("%f%f",&y,&z);
            if (y<=180)
            {
            s=y*5.0;m1=y*2.07;m2=y*1.57;m3=y*1.36;e=180-y;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
            }
            else if(y>180&&y<260)
            {
            s=y*7.0;m1=y*4.07;m2=y*1.57;m3=y*1.36;e=260-y;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
             }
            else if(y>=260)
            {
            s=y*9.0;m1=y*6.07;m2=y*1.57;m3=y*1.36;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费: %.2f\n账户余额%.2f\n",s,m1,m2,m3,z);
            }
            break;
            case 2://功能2为自备井用户查询
            printf("输入该用户用水量:输入账户余额:\n");
            scanf("%f%f",&y,&z);
            if(y<=180)
            {
            s=y*4.5;m1=y*2.07;m2=y*1.07;m3=y*1.36;e=180-y;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
            }
            else if(y>180&&y<260)
            {
            s=y*6.5;m1=y*4.07;m2=y*1.07;m3=y*1.36;e=260-y;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费:  %.2f\n到下一档额度:%.2f\n账户余额%.2f\n",s,m1,m2,m3,e,z);
            }
            else if(y>=260)
            {
            s=y*8.5;m1=y*6.07;m2=y*1.07;m3=y*1.36;z=z-s;
            printf("总水费:%.2f\n水费 %.2f\n水资源费:  %.2f\n污水处理费: %.2f\n账户余额%.2f\n",s,m1,m2,m3,z);
            }
            break;
            case 3://功能3为余额充值
            printf("请输入账户余额:  输入充值金额:\n");
            scanf("%.2f%.2f",&a,&z);
            z=a+z;
            printf("您的账户余额为:%.2f\n",z);
        }
      }
     }
    }
    int main()
    {
       int sel=1;
       while(sel)
       {
           print();
           scanf("%d",&sel);
           switch(sel){
                 case 1:input();
                        break;
                 case 2:search();
                        break;
                 case 5:sel=0;
                        break;
                 default:break;
           }
       }
       return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月30日
  • 已采纳回答 12月22日
  • 创建了问题 12月21日

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧