我想当咸鱼 发表于 2020-6-8 21:41:55

程序没有报错,但是运行结果却是空白

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int max=100000;
int size=0;

typedef struct student {
        char name;//学生姓名
        int number;//学生学号
        int phone;//学生联系方式
        char adress;//学生家庭住址
        int ID;//学生身份证号码
        char jiguan;//学生籍贯
        char Class;//学生班级
}imformation;

void serch_number1(imformation im[],int num1){//管理员模式 ——姓名查找
        int i=0;
        for(;i<size;i++){
                if(im.number == num1){
                        printf("%d \t %s \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);

                }
        }
        printf("查无此人\n");               
}
void serch_number2(imformation im[],int num2){//学生模式 ——姓名查找
        int i=0;
        for(;i<size;i++){
                if(im.number==num2){
                        printf("%d \t %s \t %c\n",im.number,im.name,im.Class);
                }
        }
        printf("查无此人\n");               
}

void serch_name1(imformation im[],char name1[]){//管理员模式 ——学号查找
        int i=0;
        for(;i<size;i++){
                if(strcmp(im.name , name1)>0){
                        printf("%s \t %d \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
                }
        }
        printf("查无此人\n");
}
void serch_name2(imformation im[],char name2[]){//学生模式 ——学号查找
        int i=0;
        for(;i<size;i++){
                if(strcmp(im.name,name2)>0){
                        printf("%s %d %s",im.name,im.number,im.Class);
                }
        }
        printf("查无此人\n");
}
void Input(imformation im[],int renshu){//输入学生信息
        printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
        int i;
        for(i=0;i<renshu;i++){
                scanf("%d %s %d %s %d %s %s %s",&im.number, im.name, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
                size++;
        }       
}
void add(imformation im[],int ge){//再添加学生信息
        int geshu=size+ge;
        printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
        int i;
        for(i=size;i<geshu;i++){
                scanf("%d %s %d %s %d %s %s %s",im.name, &im.number, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
                size++;
        }
}
void del(imformation im[],int numb) {//删除学生的信息,numb为学生学号
        int i,j;
        for(i = 0; i < size; i++) {
                if(im.number == numb) {
                        for(j = i; j < size - 1; j++){
                                im = im;
                        }
                        size--;
                        printf("删除成功!\n");
                }//end of if//
        }//end of for//
        printf("没有该学生\n");
}
void show1(imformation im[]){ //管理员模式 ——输出函数
        int temp,j;
        if(size==0)
                printf("请先输入学生信息");
        else {
                printf("\t 学号 \t        姓名 \t 联系方式 \t 家庭住址 \t 身份证号码 \t 籍贯 \t 班级");
                int i;
                for(i=0;i<size;i++){
                        for(j=i+1;j<size;j++){
                                if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
                                        temp=i;
                                        i=j;
                                        j=temp;
                                }       
                printf("%d %s %d %s %d %s %s",im.number, im.name, im.phone, im.adress, im.ID, im.jiguan, im.Class);
                        }
                }
        }       
}
void show2(imformation im[]){//学生模式 ——输出函数
        int temp,i,j;
        if(size==0)
                printf("请先输入学生信息");
        else {
                printf("\t 学号 \t        姓名 \t 班级");
                for( i=0;i<size;i++){
                        for(j=i+1;j<size;j++){
                                if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
                                        temp=i;
                                        i=j;
                                        j=temp;
                                }
                printf("%d %c %c",im.number, im.name, im.Class);
                        }
                }
        }
}
void update(imformation im[]){//学生修改个人信息
        int i=0,x,count;
        printf("请输入自己的学号:");
        scanf("%d",&count);
        char chose;
        for(;i<size;i++){
                if(count==im.number)
                        break;
                else{
                        printf("ERROR!");
                }
        }
        printf("1.修改姓名 \n2.修改联系方式 \n3.修改家庭地址 \n4修改身份证号码 \n5.修改籍贯 \n6.修改班级 \n0.退出");
        printf("请选择要修改的内容:");
        do{
                scanf("%d",&x);
                switch(x){
                        case 1:
                                printf("请输入新的姓名\n");
                                scanf("%s",im.name);
                                strcpy(im.name,im.name);
                                break;
                        case 2:
                                printf("请输入新的联系方式\n");
                                scanf("%d",&im.phone);
                                im.phone=im.phone;
                                break;
                        case 3:
                                printf("请输入新的地址\n");
                                scanf("%s",im.adress);
                                strcpy(im.adress,im.adress);
                                break;
                        case 4:
                                printf("请输入新的身份证号码\n");
                                scanf("%d",&im.ID);
                                im.ID=im.ID;
                                break;
                        case 5:
                                printf("请输入新的籍贯\n");
                                scanf("%s",im.jiguan);
                                strcpy(im.jiguan,im.jiguan);
                                break;
                        case 6:
                                printf("请输入新的班级\n");
                                scanf("%s",im.Class);
                                strcpy(im.Class,im.Class);
                                break;
                        case 0:
                                break;
                        }
                printf("是否继续修改?(y/n)");//可以进行多次修改,防止有多初错误
                scanf("%c",&chose);
        }while(chose=='y');
}
void menu1(){
        printf("=====================================");
        printf("|1.输入学生信息|*****|2.学号查找学生|");
        printf("=====================================");
    printf("|3.删除学生信息|*****|4.姓名查找信息|");
        printf("=====================================");
        printf("|5.浏览学生信息|*****|0.****退出****|");
        printf("=====================================");
}
void menu2(){
        printf("=====================================");
        printf("|1.姓名查找学生|*****|2.学号查找学生|");
        printf("=====================================");
    printf("|3.修改个人信息|*****|4.浏览学生信息|");
        printf("=====================================");
        printf("|**************0. 退出**************|");
        printf("=====================================");
}

int main(){
        imformation student;
        int student_number;
        int shenfen;
        printf("请输入你的身份(1.学生/2.管理员):");
        scanf("%d",&shenfen);
        if(shenfen==2) {
                menu1();
                int i=1,renshu;
                char student_name;
                printf("请做出选择:");
                scanf("%d",&i);
                while(i){
                        switch(i){
                                case 1://录入学生信息
                                        printf("请输入需要录入的学生的人数:");
                                        scanf("%d",&renshu);
                                        Input(student,renshu);
                                        break;
                                case 2://根据学号查找学生
                                        printf("请输入需要查找的学生的学号:");       
                                        scanf("%d",&student_number);
                                        serch_number1(student,student_number);
                                        break;
                                case 3://删除学生信息
                                        printf("请输入将被删除的学生的学号:");
                                        scanf("%d",&student_number);
                                        del(student,student_number);
                                        break;
                                case 4://根据姓名查找学生
                                        printf("请输入需要查找的学生的姓名:");
                                        scanf("%s",student_name);
                                        serch_name1(student,student_name);
                                        break;
                                case 5://打印学生信息
                                        show1(student);
                                        break;
                                case 0://退出
                                        printf("已成功退出");
                                        break;
                                default:
                                        printf("输错啦!!!");
                        }       
                }
        }
        else{
                menu2();
                int j=1;
                char student_name;
                printf("请做出选择:");
                scanf("%d",&j);
                while(j){
                        switch(j){
                                case 1://根据姓名查找学生
                                        printf("请输入需要查找的学生的姓名:");
                                        scanf("%s",student_name);
                                        serch_name2(student,student_name);
                                        break;
                                case 2://根据学号查找学生
                                        printf("请输入需要查找的学生的学号:");       
                                        scanf("%d",&student_number);
                                        serch_number2(student,student_number);
                                        break;
                                case 3://学生自己修改自己的学生信息
                                        update(student);
                                        break;               
                                case 4://打印学生信息
                                        show2(student);
                                        break;
                                case 0://退出
                                        printf("已成功退出");
                                        break;
                                default:
                                        printf("输错啦!!!");
                       }
       
                }
        }
        return 0;
}
哪位大佬帮下忙,周三就要交了。
在线等,挺急的!{:10_284:}

紫霞真人 发表于 2020-6-9 13:05:58

你这语法很多问题啊,怎么可能不报错
结构体那里定义出错了:要这样定义:
struct student_information
{
      char name;//学生姓名
      int number;//学生学号
      int phone;//学生联系方式
      char adress;//学生家庭住址
      int ID;//学生身份证号码
      char jiguan;//学生籍贯
      char Class;//学生班级
};
struct student_information student;
max要用#define max 50 这样定义,才能用在数组定义中

我想当咸鱼 发表于 2020-6-9 23:15:01

紫霞真人 发表于 2020-6-9 13:05
你这语法很多问题啊,怎么可能不报错
结构体那里定义出错了:要这样定义:
struct student_information
...

真没报错,dev 错误0,警告0

紫霞真人 发表于 2020-6-10 11:00:26

我用的vc++6.0,你看看我的程序程序能不能运行,我在vc++6.0运行通过了
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#define max 50
int size=0;

struct student_information
{
      char name;//学生姓名
      int number;//学生学号
      int phone;//学生联系方式
      char adress;//学生家庭住址
      int ID;//学生身份证号码
      char jiguan;//学生籍贯
      char Class;//学生班级
};

void serch_number1(struct student_information im[],int num1){
        //管理员模式 ——姓名查找
       int i=0;
       for(;i<size;i++){
               if(im.number == num1){
                     printf("%d \t %s \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);

               }
       }
       printf("查无此人\n");               
}
void serch_number2(struct student_information im[],int num2){//学生模式 ——姓名查找
      int i=0;
      for(;i<size;i++){
                if(im.number==num2){
                        printf("%d \t %s \t %c\n",im.number,im.name,im.Class);
                }
      }
      printf("查无此人\n");               
}

void serch_name1(struct student_information im[],char name1[]){//管理员模式 ——学号查找
      int i=0;
      for(;i<size;i++){
                if(strcmp(im.name , name1)>0){
                        printf("%s \t %d \t %d \t %s \t %d \t %s \t %s\n",im.name,im.number,im.phone,im.adress,im.ID,im.jiguan,im.Class);
                }
      }
      printf("查无此人\n");
}
void serch_name2(struct student_information im[],char name2[]){//学生模式 ——学号查找
      int i=0;
      for(;i<size;i++){
                if(strcmp(im.name,name2)>0){
                        printf("%s %d %s",im.name,im.number,im.Class);
                }
      }
      printf("查无此人\n");
}
void Input(struct student_information im[],int renshu){//输入学生信息

//       printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
      int i=0;
      for(i=0;i<renshu;i++){
                scanf("%d %s %d %s %d %s %s %s",&im.number, im.name, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
                size++;
      }      
}
void add(struct student_information im[],int ge){//再添加学生信息
      int geshu=size+ge;
//      printf("学号\t姓名\t联系方式\t家庭住址\t身份证号码\t籍贯\t");
      int i;
      for(i=size;i<geshu;i++){
                scanf("%d %s %d %s %d %s %s %s",im.name, &im.number, &im.phone, im.adress, &im.ID, im.jiguan, im.Class);
                size++;
      }
}
void del(struct student_information im[],int numb) {//删除学生的信息,numb为学生学号
      int i,j;
         for(i = 0; i < size; i++) {
               if(im.number == numb) {
                        for(j = i; j < size - 1; j++){
                                 im = im;
                         }
                         size--;
                        printf("删除成功!\n");
               }//end of if//
         }//end of for//
         printf("没有该学生\n");
}
void show1(struct student_information im[]){ //管理员模式 ——输出函数
      int temp,j;
      if(size==0)
                printf("请先输入学生信息");
      else {
//               printf("\t 学号 \t      姓名 \t 联系方式 \t 家庭住址 \t 身份证号码 \t 籍贯 \t 班级");
                int i;
                for(i=0;i<size;i++){
                        for(j=i+1;j<size;j++){
                              if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
                                        temp=i;
                                        i=j;
                                        j=temp;
                              }      
                printf("%d %s %d %s %d %s %s",im.number, im.name, im.phone, im.adress, im.ID, im.jiguan, im.Class);
                        }
                }
      }      
}
void show2(struct student_information im[]){//学生模式 ——输出函数
      int temp,i,j;
      if(size==0)
                printf("请先输入学生信息");
      else {
                printf("\t 学号 \t      姓名 \t 班级");
                for( i=0;i<size;i++){
                        for(j=i+1;j<size;j++){
                              if(im.number>im.number) {//根据学号进行排序,学号小的在前面,学号大的在后面
                                        temp=i;
                                        i=j;
                                        j=temp;
                              }
                printf("%d %c %c",im.number, im.name, im.Class);
                        }
                }
      }
}
void update(struct student_information im[]){//学生修改个人信息
      int i=0,x,count;
//       printf("请输入自己的学号:");
//       scanf("%d",&count);
      char chose;
      for(;i<size;i++){
                if(count==im.number)
                        break;
                else{
                        printf("ERROR!");
                }
      }
      printf("1.修改姓名 \n2.修改联系方式 \n3.修改家庭地址 \n4修改身份证号码 \n5.修改籍贯 \n6.修改班级 \n0.退出");
      printf("请选择要修改的内容:");
      do{
                scanf("%d",&x);
                switch(x){
                        case 1:
                              printf("请输入新的姓名\n");
                              scanf("%s",im.name);
                              strcpy(im.name,im.name);
                              break;
                        case 2:
                              printf("请输入新的联系方式\n");
                              scanf("%d",&im.phone);
                              im.phone=im.phone;
                              break;
                        case 3:
                              printf("请输入新的地址\n");
                              scanf("%s",im.adress);
                              strcpy(im.adress,im.adress);
                              break;
                        case 4:
                              printf("请输入新的身份证号码\n");
                              scanf("%d",&im.ID);
                              im.ID=im.ID;
                              break;
                        case 5:
                              printf("请输入新的籍贯\n");
                              scanf("%s",im.jiguan);
                              strcpy(im.jiguan,im.jiguan);
                              break;
                        case 6:
                              printf("请输入新的班级\n");
                              scanf("%s",im.Class);
                              strcpy(im.Class,im.Class);
                              break;
                        case 0:
                              break;
                        }
                printf("是否继续修改?(y/n)");//可以进行多次修改,防止有多初错误
                scanf("%c",&chose);
      }while(chose=='y');
}
void menu1(){
//      printf("=====================================");
//      printf("|1.输入学生信息|*****|2.学号查找学生|");
//      printf("=====================================");
//                printf("|3.删除学生信息|*****|4.姓名查找信息|");
//      printf("=====================================");
//      printf("|5.浏览学生信息|*****|0.****退出****|");
//      printf("=====================================");
}
void menu2(){
      printf("=====================================");
      printf("|1.姓名查找学生|*****|2.学号查找学生|");
      printf("=====================================");
    printf("|3.修改个人信息|*****|4.浏览学生信息|");
      printf("=====================================");
      printf("|**************0. 退出**************|");
      printf("=====================================");
}

int main(){
      struct student_information student;
      int student_number;
      int shenfen;
      printf("请输入你的身份(1.学生/2.管理员):");
       scanf("%d",&shenfen);
      if(shenfen==2) {
                          int i=1,renshu;
                char student_name;
                menu1();
                printf("请做出选择:");
                scanf("%d",&i);
                while(i){
                        switch(i){
                              case 1://录入学生信息
                                        printf("请输入需要录入的学生的人数:");
                                        scanf("%d",&renshu);
                                        Input(student,renshu);
                                        break;
                              case 2://根据学号查找学生
                                        printf("请输入需要查找的学生的学号:");      
                                        scanf("%d",&student_number);
                                        serch_number1(student,student_number);
                                        break;
                              case 3://删除学生信息
                                        printf("请输入将被删除的学生的学号:");
                                        scanf("%d",&student_number);
                                        del(student,student_number);
                                        break;
                              case 4://根据姓名查找学生
                                        printf("请输入需要查找的学生的姓名:");
                                        scanf("%s",student_name);
                                        serch_name1(student,student_name);
                                        break;
                              case 5://打印学生信息
                                        show1(student);
                                        break;
                              case 0://退出
                                        printf("已成功退出");
                                        break;
                              default:
                                        printf("输错啦!!!");
                        }      
                }
      }
      else{
               
                int j=1;
                char student_name;
                                menu2();
                printf("请做出选择:");
                scanf("%d",&j);
                while(j){
                        switch(j){
                              case 1://根据姓名查找学生
                                        printf("请输入需要查找的学生的姓名:");
                                        scanf("%s",student_name);
                                        serch_name2(student,student_name);
                                        break;
                              case 2://根据学号查找学生
                                        printf("请输入需要查找的学生的学号:");      
                                        scanf("%d",&student_number);
                                        serch_number2(student,student_number);
                                        break;
                              case 3://学生自己修改自己的学生信息
                                        update(student);
                                        break;               
                              case 4://打印学生信息
                                        show2(student);
                                        break;
                              case 0://退出
                                        printf("已成功退出");
                                        break;
                              default:
                                        printf("输错啦!!!");
                         }
      
                }
      }
      return 0;
}

我想当咸鱼 发表于 2020-6-11 08:46:40

紫霞真人 发表于 2020-6-10 11:00
我用的vc++6.0,你看看我的程序程序能不能运行,我在vc++6.0运行通过了
#include
#include


可以了,谢谢{:10_275:}
页: [1]
查看完整版本: 程序没有报错,但是运行结果却是空白