标题:[em04] 求救啊 运行不了 用VC调试的
只看楼主
々不后悔
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-23
 问题点数:0 回复次数:2 
[em04] 求救啊 运行不了 用VC调试的


#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define MUNMAX 5
struct studentInfo{
    int num;
    float basic;
    float spe;
    float choose;
    float peop;
    float lib;
};
struct stuType{
    studentInfo stu[MUNMAX];
    int num;
};
void DisplayMenu();
int choiceItem();
int f(int);
void putone(struct stuType* as,int num);
void sum(struct stuType *p);
void Init(struct stuType*);
void PrintInfo(struct stuType);
void Print_aInfo(struct stuType,int);
void Input_aInfo(struct student,Info*);
void Input_allInfo(struct stuType*,int num);
int Search(struct stuType);
void modify(struct stuType*);
void main()
{
    struct stuType student;
    int choice,index,a;
    system("color 4e");
    Init(&student);
    do{
        choice=choiceItem();
        switch (choice){
         case 0:printf("\n再见!");break;
         case 1:Input_allInfo(&student,MUNMAX);break;
         case 2:putone(&student,f(a));break;
         case 3:PrintInfo(student);break;
         case 4:modify(&student);break;
         case 5:if ((index=Search(student))!=-1)
                    Print_aInfo(student,index);
             else printf("\n不存在这个学生.");
             break;
         case 6:Init(&student);break;
         case 7:sum(&student);break;
        }
    }while(choice);


}


void DisplayMenu()
{
COORD coordScreen = { 25, 3 };
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon, coordScreen);
printf("========= MENU =========\n");
printf("\n (1) 通过键盘输入全部学生的学分;");
printf("\n (2) 通过键盘修改某位学生的学分;");
printf("\n (3) 显示该班所有学生学分完成情况;");
printf("\n (4) 全部课程的学分高低进行排序;");
printf("\n (5) 给定学号,显示该学生学分完成情况;");
printf("\n (6) 初始化程序;");
printf("\n (7) 一些统计信息;");
printf("\n (0) 退出系统;");
printf("\nchoice,please:");
}
int choiceItem()
{
int choice;
do{
DisplayMenu();
scanf("%d",&choice);
}while(choice<0||choice>7);
return choice;
}
int f(int a)
{
do
{
     printf("请输入要修改学生的学号(1-5):");
     scanf("%d",&a);
}while(a-1<0||a-1>4);
return a-1;
}
void Init(struct stuType* s)
{
s->num=0;
}
void Print_aInfo(struct stuType s,int index)
{
printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学

分:%-6.1f\n实验性课程学分:%-6.1f\n ",s.stu[index].num,s.stu[index].basic,s.stu)

[index].spe,s.stu[index].choose,s.stu[index].peop,s.stu[index].lib;
}
void PrintInfo(struct stuType s)
if (snum==0);
{
printf("\n无学生信息.");
return;
}
for (int i=0;i<snum;i++)
{
 printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学

分:%-6.1f\n实验性课程学分:%-6.1f\n ",s.stu[i].num,s.stu[i].basic,s.stu[i].spe,s.stu

[i].choose,s.stu[i].peop,s.stu[i].lib);
}
 
void putone(struct stuType* as,int num);
{
Input_aInfo(&as->stu[num]);
}
void Input_aInfo(struct studentInfo* as)
{
 do
 {
 printf("请输入学生的学号:");
 scanf("%d",&as->num);
 }while(as->num<1||as->num>5);
 printf("请输入学生的基础课成绩:");
 scanf("%f",&as->basic);
 printf("请输入学生的专业课成绩:");
 scanf("%f",&as->spe);
 printf("请输入学生的选修课成绩:");
 scanf("%f",&as->choose);
 printf("请输入学生的人文课成绩:");
 scanf("%f",&as->peop);
 printf("请输入学生的实验课成绩:");
 scanf("%f",&as->lib);
 printf("\n");
}
void Input_allInfo(struct stuType* s,int num)
{
printf("\n请输入 %d 组信息.\n",num);
for (int i=0;i<num;i++){
if (s->num==MUNMAX){
  printf("\n已经输入过成绩,不能重复输入,只能按2更改原始数据!");
  break;
}
Input_aInfo(&s->stu[s->num++]);
}
}
int Search(struct stuType stu)
{
int num;
do
{
printf("\n输入学生学号(1-5):");
scanf("%d",&num);
}while(num<1||num>5);
for (int i=0;i<stu.num;i++)
if (stu.stu[i].num==num)
  return i;
return -1;
}
void modify(struct stuType *p)
{int i,j;float temp;
for(i=0;i<4;i++)
 for(j=0;j<4-i;j++)
 {if(p->stu[j].basic>p->stu[j+1].basic)
 {
   temp=p->stu[j].basic;
   p->stu[j].basic=p->stu[j+1].basic;
   p->stu[j+1].basic=temp;}
 if(p->stu[j].spe>p->stu[j+1].spe)
 {
   temp=p->stu[j].spe;
   p->stu[j].spe=p->stu[j+1].spe;
   p->stu[j+1].spe=temp;}
 if(p->stu[j].choose>p->stu[j+1].choose)
 {
   temp=p->stu[j].choose;
   p->stu[j].choose=p->stu[j+1].choose;
   p->stu[j+1].choose=temp;}
 if(p->stu[j].peop>p->stu[j+1].peop)
 {
   temp=p->stu[j].peop;
   p->stu[j].peop=p->stu[j+1].peop;
   p->stu[j+1].peop=temp;}
 if(p->stu[j].lib>p->stu[j+1].lib)
 {
   temp=p->stu[j].lib;
   p->stu[j].lib=p->stu[j+1].lib;
   p->stu[j+1].lib=temp;}
 }
printf("全部课程成绩的排序结果为:\n基础课:");
 for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].basic);
printf("\n专业课:");
 for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].spe);
printf("\n选修课:");
 for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].choose);
printf("\n人文课:");
 for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].peop);
printf("\n实验课:");
 for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].lib);
}
void sum(struct stuType *p)
{int i,b1=0,b2=0,s1=0,s2=0,c1=0,c2=0,p1=0,p2=0,l1=0,l2=0;
for(i=0;i<4;i++)
 {if(p->stu[i].basic>=90.0)
  b1++;
  if(p->stu[i].basic<50.0)
  b2++;
  if(p->stu[i].spe>=90.0)
  s1++;
  if(p->stu[i].spe<50.0)
  s2++;
  if(p->stu[i].choose>=90.0)
  c1++;
  if(p->stu[i].choose<24.0)
  c2++;
  if(p->stu[i].peop>=90.0)
  p1++;
  if(p->stu[i].peop<8.0)
  p2++;
  if(p->stu[i].lib>=90.0)
  l1++;
  if(p->stu[i].lib<20.0)
  l2++;
}
printf("\n基础课程90学分以上的有%d个,不及格的有%d个",b1,b2);
printf("\n专业课程90学分以上的有%d个,不及格的有%d个",s1,s2);
printf("\n选修课程90学分以上的有%d个,不及格的有%d个",c1,c2);
printf("\n人文课程90学分以上的有%d个,不及格的有%d个",p1,p2);
printf("\n实验课程90学分以上的有%d个,不及格的有%d个",l1,l2);
}
搜索更多相关主题的帖子: void int float struct stuType 
2007-12-11 21:41
beyond0702
Rank: 1
来 自: 桂 林
等 级:新手上路
帖 子:219
专家分:0
注 册:2007-11-17
得分:0 
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define MUNMAX 5
struct studentInfo{
    int num;
    float basic;
    float spe;
    float choose;
    float peop;
    float lib;
};
struct stuType{
    studentInfo stu[MUNMAX];
    int num;
};
void DisplayMenu();
int choiceItem();
int f(int);
void putone(struct stuType* as,int num);
void sum(struct stuType *p);
void Init(struct stuType*);
void PrintInfo(struct stuType);
void Print_aInfo(struct stuType,int);
void Input_aInfo(struct student,Info*);
void Input_allInfo(struct stuType*,int num);
int Search(struct stuType);
void modify(struct stuType*);
void main()
{
    struct stuType student;
    int choice,index,a;
    system("color 4e");
    Init(&student);
    do{
        choice=choiceItem();
        switch (choice){
         case 0:printf("\n再见!");break;
         case 1:Input_allInfo(&student,MUNMAX);break;
         case 2:putone(&student,f(a));break;
         case 3:PrintInfo(student);break;
         case 4:modify(&student);break;
         case 5:if ((index=Search(student))!=-1)
                    Print_aInfo(student,index);
             else printf("\n不存在这个学生.");
             break;
         case 6:Init(&student);break;
         case 7:sum(&student);break;
        }
    }while(choice);


}


void DisplayMenu()
{
COORD coordScreen = { 25, 3 };
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon, coordScreen);
printf("========= MENU =========\n");
printf("\n (1) 通过键盘输入全部学生的学分;");
printf("\n (2) 通过键盘修改某位学生的学分;");
printf("\n (3) 显示该班所有学生学分完成情况;");
printf("\n (4) 全部课程的学分高低进行排序;");
printf("\n (5) 给定学号,显示该学生学分完成情况;");
printf("\n (6) 初始化程序;");
printf("\n (7) 一些统计信息;");
printf("\n (0) 退出系统;");
printf("\nchoice,please:");
}
int choiceItem()
{
int choice;
do{
DisplayMenu();
scanf("%d",&choice);
}while(choice<0||choice>7);
return choice;
}
int f(int a)
{
do
{
     printf("请输入要修改学生的学号(1-5):");
     scanf("%d",&a);
}while(a-1<0||a-1>4);
return a-1;
}
void Init(struct stuType* s)
{
s->num=0;
}
void Print_aInfo(struct stuType s,int index)
{
printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学

分:%-6.1f\n实验性课程学分:%-6.1f\n ",s.stu[index].num,s.stu[index].basic,s.stu)

[index].spe,s.stu[index].choose,s.stu[index].peop,s.stu[index].lib;
}
void PrintInfo(struct stuType s)   //这里你的参数是stuType s到了里面你用stu,如s.stu[i].num
{                                  //在该函数里你不用自己定义的变量,而是用其他函数的,其他地方也一样.
                                   //总之你这代码还有好多错的,但这是最严重的了
if (snum==0);
printf("\n无学生信息.");
return;
}
for (int i=0;i<snum;i++)
{
printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学

分:%-6.1f\n实验性课程学分:%-6.1f\n ",s.stu[i].num,s.stu[i].basic,s.stu[i].spe,s.stu

[i].choose,s.stu[i].peop,s.stu[i].lib);
}

void putone(struct stuType* as,int num);
{
Input_aInfo(&as->stu[num]);
}
void Input_aInfo(struct studentInfo* as)
{
do
{
printf("请输入学生的学号:");
scanf("%d",&as->num);
}while(as->num<1||as->num>5);
printf("请输入学生的基础课成绩:");
scanf("%f",&as->basic);
printf("请输入学生的专业课成绩:");
scanf("%f",&as->spe);
printf("请输入学生的选修课成绩:");
scanf("%f",&as->choose);
printf("请输入学生的人文课成绩:");
scanf("%f",&as->peop);
printf("请输入学生的实验课成绩:");
scanf("%f",&as->lib);
printf("\n");
}
void Input_allInfo(struct stuType* s,int num)
{
printf("\n请输入 %d 组信息.\n",num);
for (int i=0;i<num;i++){
if (s->num==MUNMAX){
  printf("\n已经输入过成绩,不能重复输入,只能按2更改原始数据!");
  break;
}
Input_aInfo(&s->stu[s->num++]);
}
}
int Search(struct stuType stu)
{
int num;
do
{
printf("\n输入学生学号(1-5):");
scanf("%d",&num);
}while(num<1||num>5);
for (int i=0;i<stu.num;i++)
if (stu.stu[i].num==num)
  return i;
return -1;
}
void modify(struct stuType *p)
{int i,j;float temp;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{if(p->stu[j].basic>p->stu[j+1].basic)
{
   temp=p->stu[j].basic;
   p->stu[j].basic=p->stu[j+1].basic;
   p->stu[j+1].basic=temp;}
if(p->stu[j].spe>p->stu[j+1].spe)
{
   temp=p->stu[j].spe;
   p->stu[j].spe=p->stu[j+1].spe;
   p->stu[j+1].spe=temp;}
if(p->stu[j].choose>p->stu[j+1].choose)
{
   temp=p->stu[j].choose;
   p->stu[j].choose=p->stu[j+1].choose;
   p->stu[j+1].choose=temp;}
if(p->stu[j].peop>p->stu[j+1].peop)
{
   temp=p->stu[j].peop;
   p->stu[j].peop=p->stu[j+1].peop;
   p->stu[j+1].peop=temp;}
if(p->stu[j].lib>p->stu[j+1].lib)
{
   temp=p->stu[j].lib;
   p->stu[j].lib=p->stu[j+1].lib;
   p->stu[j+1].lib=temp;}
}
printf("全部课程成绩的排序结果为:\n基础课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].basic);
printf("\n专业课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].spe);
printf("\n选修课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].choose);
printf("\n人文课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].peop);
printf("\n实验课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].lib);
}
void sum(struct stuType *p)
{int i,b1=0,b2=0,s1=0,s2=0,c1=0,c2=0,p1=0,p2=0,l1=0,l2=0;
for(i=0;i<4;i++)
{if(p->stu[i].basic>=90.0)
  b1++;
  if(p->stu[i].basic<50.0)
  b2++;
  if(p->stu[i].spe>=90.0)
  s1++;
  if(p->stu[i].spe<50.0)
  s2++;
  if(p->stu[i].choose>=90.0)
  c1++;
  if(p->stu[i].choose<24.0)
  c2++;
  if(p->stu[i].peop>=90.0)
  p1++;
  if(p->stu[i].peop<8.0)
  p2++;
  if(p->stu[i].lib>=90.0)
  l1++;
  if(p->stu[i].lib<20.0)
  l2++;
}
printf("\n基础课程90学分以上的有%d个,不及格的有%d个",b1,b2);
printf("\n专业课程90学分以上的有%d个,不及格的有%d个",s1,s2);
printf("\n选修课程90学分以上的有%d个,不及格的有%d个",c1,c2);
printf("\n人文课程90学分以上的有%d个,不及格的有%d个",p1,p2);
printf("\n实验课程90学分以上的有%d个,不及格的有%d个",l1,l2);
}
2007-12-11 22:44
布拉莫斯
Rank: 1
来 自:中国太平洋舰队
等 级:新手上路
帖 子:169
专家分:0
注 册:2007-3-31
得分:0 
我也改好了,,那都是一些很低级的错误。。
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#define MUNMAX 5
struct studentInfo{
    int num;
    float basic;
    float spe;
    float choose;
    float peop;
    float lib;
};
struct stuType{
    studentInfo stu[MUNMAX];
    int num;
};
void DisplayMenu();
int choiceItem();
int f(int);
void putone(struct stuType* as,int num);
void sum(struct stuType *p);
void Init(struct stuType*);
void PrintInfo(struct stuType);
void Print_aInfo(struct stuType,int);
void Input_aInfo(struct studentInfo*);
void Input_allInfo(struct stuType*,int num);
int Search(struct stuType);
void modify(struct stuType*);
void main()
{
    struct stuType student;
    int choice,index,a;
    system("color 4e");
    Init(&student);
    do{
        choice=choiceItem();
        switch (choice){
         case 0:printf("\n再见!");break;
         case 1:Input_allInfo(&student,MUNMAX);break;
         case 2:putone(&student,f(a));break;
         case 3:PrintInfo(student);break;
         case 4:modify(&student);break;
         case 5:if ((index=Search(student))!=-1)
                    Print_aInfo(student,index);
             else printf("\n不存在这个学生.");
             break;
         case 6:Init(&student);break;
         case 7:sum(&student);break;
        }
    }while(choice);


}


void DisplayMenu()
{
COORD coordScreen = { 25, 3 };
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hCon, coordScreen);
printf("========= MENU =========\n");
printf("\n (1) 通过键盘输入全部学生的学分;");
printf("\n (2) 通过键盘修改某位学生的学分;");
printf("\n (3) 显示该班所有学生学分完成情况;");
printf("\n (4) 全部课程的学分高低进行排序;");
printf("\n (5) 给定学号,显示该学生学分完成情况;");
printf("\n (6) 初始化程序;");
printf("\n (7) 一些统计信息;");
printf("\n (0) 退出系统;");
printf("\nchoice,please:");
}
int choiceItem()
{
int choice;
do{
DisplayMenu();
scanf("%d",&choice);
}while(choice<0||choice>7);
return choice;
}
int f(int a)
{
do
{
     printf("请输入要修改学生的学号(1-5):");
     scanf("%d",&a);
}while(a-1<0||a-1>4);
return a-1;
}
void Init(struct stuType* s)
{
s->num=0;
}
void Print_aInfo(struct stuType s,int index)
{
printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学分:%-6.1f\n实验性课程学分:%-6.1f\n ",
       s.stu[index].num,s.stu[index].basic,s.stu[index].spe,s.stu[index].choose,s.stu[index].peop,s.stu[index].lib);
}
void PrintInfo(struct stuType s)
{if (s.num==0)
     {
    printf("\n无学生信息.");
    return;
    }
for (int i=0;i<s.num;i++)
{
printf("\n学号:%d\n基础课学分:%-6.1f\n专业课学分:%-6.1f\n选修课学分:%-6.1f\n人文类课程学分:%-6.1f\n实验性课程学分:%-6.1f\n ",
       s.stu[i].num,s.stu[i].basic,s.stu[i].spe,s.stu[i].choose,s.stu[i].peop,s.stu[i].lib);
}

}
void putone(struct stuType* as,int num)
{
   Input_aInfo(&as->stu[num]);
}
void Input_aInfo(struct studentInfo* as)
{
do
{
printf("请输入学生的学号:");
scanf("%d",&as->num);
}while(as->num<1||as->num>5);
printf("请输入学生的基础课成绩:");
scanf("%f",&as->basic);
printf("请输入学生的专业课成绩:");
scanf("%f",&as->spe);
printf("请输入学生的选修课成绩:");
scanf("%f",&as->choose);
printf("请输入学生的人文课成绩:");
scanf("%f",&as->peop);
printf("请输入学生的实验课成绩:");
scanf("%f",&as->lib);
printf("\n");
}
void Input_allInfo(struct stuType* s,int num)
{
printf("\n请输入 %d 组信息.\n",num);
for (int i=0;i<num;i++){
if (s->num==MUNMAX){
  printf("\n已经输入过成绩,不能重复输入,只能按2更改原始数据!");
  break;
}
Input_aInfo(&s->stu[s->num++]);
}
}
int Search(struct stuType stu)
{
int num;
do
{
printf("\n输入学生学号(1-5):");
scanf("%d",&num);
}while(num<1||num>5);
for (int i=0;i<stu.num;i++)
if (stu.stu[i].num==num)
  return i;
return -1;
}
void modify(struct stuType *p)
{int i,j;float temp;
for(i=0;i<4;i++)
for(j=0;j<4-i;j++)
{if(p->stu[j].basic>p->stu[j+1].basic)
{
   temp=p->stu[j].basic;
   p->stu[j].basic=p->stu[j+1].basic;
   p->stu[j+1].basic=temp;}
if(p->stu[j].spe>p->stu[j+1].spe)
{
   temp=p->stu[j].spe;
   p->stu[j].spe=p->stu[j+1].spe;
   p->stu[j+1].spe=temp;}
if(p->stu[j].choose>p->stu[j+1].choose)
{
   temp=p->stu[j].choose;
   p->stu[j].choose=p->stu[j+1].choose;
   p->stu[j+1].choose=temp;}
if(p->stu[j].peop>p->stu[j+1].peop)
{
   temp=p->stu[j].peop;
   p->stu[j].peop=p->stu[j+1].peop;
   p->stu[j+1].peop=temp;}
if(p->stu[j].lib>p->stu[j+1].lib)
{
   temp=p->stu[j].lib;
   p->stu[j].lib=p->stu[j+1].lib;
   p->stu[j+1].lib=temp;}
}
printf("全部课程成绩的排序结果为:\n基础课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].basic);
printf("\n专业课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].spe);
printf("\n选修课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].choose);
printf("\n人文课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].peop);
printf("\n实验课:");
for(i=0;i<5;i++)
  printf("%-6.1f",p->stu[i].lib);
}
void sum(struct stuType *p)
{int i,b1=0,b2=0,s1=0,s2=0,c1=0,c2=0,p1=0,p2=0,l1=0,l2=0;
for(i=0;i<4;i++)
{if(p->stu[i].basic>=90.0)
  b1++;
  if(p->stu[i].basic<50.0)
  b2++;
  if(p->stu[i].spe>=90.0)
  s1++;
  if(p->stu[i].spe<50.0)
  s2++;
  if(p->stu[i].choose>=90.0)
  c1++;
  if(p->stu[i].choose<24.0)
  c2++;
  if(p->stu[i].peop>=90.0)
  p1++;
  if(p->stu[i].peop<8.0)
  p2++;
  if(p->stu[i].lib>=90.0)
  l1++;
  if(p->stu[i].lib<20.0)
  l2++;
}
printf("\n基础课程90学分以上的有%d个,不及格的有%d个",b1,b2);
printf("\n专业课程90学分以上的有%d个,不及格的有%d个",s1,s2);
printf("\n选修课程90学分以上的有%d个,不及格的有%d个",c1,c2);
printf("\n人文课程90学分以上的有%d个,不及格的有%d个",p1,p2);
printf("\n实验课程90学分以上的有%d个,不及格的有%d个",l1,l2);
}

真理往往掌握在少数人手中,可现实却是少数服从多数!
2007-12-12 13:56



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




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

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