小新冲冲冲 2023-03-13 16:48 采纳率: 96.7%
浏览 51
已结题

我的代码为什么运行不起来呢?

我写了三个文件,一个头文件,两个源文件,这个是其中一个源文件
它可以运行,但是效果和我想的不一样,这个运行起来那个框怎么都输不进内容


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include"tou.h"
#include<string.h>

void menu(int* x,gs* pc) {//px表示地址   *px表示值     而此处是写一个函数,所以px是形参
    int c = 0;
    switch (*x) {
    case 0:
        printf("请选择:1.商家\t2.客户\t\n");
        scanf("%d", x);//此处直接改变地址上的值也可以改变x的值    x已经是地址了,不需要&
    case 1:
        printf("请选择:3.入驻\t4.注销商家\t\n");
        scanf("%d", x);
    case 3:
        zj(pc);
        break;
    case 4:
        sc(pc);
        break;
    case 2:
        dy1(pc);
        printf("请输入需要点单的商家的数字码:");
        scanf("%d", &c);
        dy2(pc,c);
        printf("可以开始点单了");
        break;
    }
}


int main() {
    gs biao1;
    cs(&biao1);//初始结构体
    int x = 0;
    do {
        menu(&x, &biao1);
        printf("退出程序请按0,循环进去程序请按-1:");
        scanf("%d", &x);
    } while (x != -1);
}

  • 写回答

4条回答 默认 最新

  • a5156520 2023-03-13 19:18
    关注

    我这里使用下面的测试代码,程序是正常运行的,只是修改了下执行的流程,测试如下:

     
    #define _CRT_SECURE_NO_WARNINGS 1
    #include<stdio.h>
    #include<string.h>
     
    struct gs{
        int id;
        
    }; 
      
    void zj(struct gs * pc){
        printf("入驻成功!\n");
    } 
    
    void sc(struct gs * ps){
        printf("注销成功!\n");
    }
    
    void dy1(struct gs * pc){
        printf("dy1\n");
    }
    
    void dy2(struct gs * pc,int c){
        printf("dy2");
    }
    
    void cs(struct gs * biao){
        biao->id=0;
    }
    
    void menu(int* x,gs* pc) {//px表示地址   *px表示值     而此处是写一个函数,所以px是形参
    
        int c = 0;
        
         printf("请选择:1.商家\t2.客户\t\n");  
        scanf("%d", x);//此处直接改变地址上的值也可以改变x的值    x已经是地址了,不需要&
        
            if (*x==1){
            printf("请选择:3.入驻\t4.注销商家\t\n");
            scanf("%d",x);        
        }
        
        switch (*x) {
                               
            case 3:
                zj(pc);
                break;
            case 4:
                sc(pc);
                break;
            case 2:
                dy1(pc);
                printf("请输入需要点单的商家的数字码:");
                scanf("%d", &c);
                dy2(pc,c);
                printf("可以开始点单了\n");
                break;
        }
       
    }
     
     
    int main() {
        gs biao1;
        cs(&biao1);//初始结构体
        int x = 0;
        do {
            menu(&x, &biao1);
            printf("退出程序请按0,循环进去程序请按-1:");
            scanf("%d", &x);
        } while (x != 0);
    }
     
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月21日
  • 已采纳回答 3月13日
  • 创建了问题 3月13日

悬赏问题

  • ¥15 有没有可以帮我搞一个微信建群链接,包括群名称和群资料群头像那种,不会让你白忙
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题