VC6一维数组和函数调用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC6一维数组和函数调用相关的知识,希望对你有一定的参考价值。

已经发到你QQ了!
#include <stdio.h>
#include <string.h>
#include <time.h>
#define SIZE 10
struct student

int num;/* 学号 */
char name[20];/*姓名*/
int sex;/*性别*/
int score_YuWen;/*语文成绩*/
int score_Math;/*数学成绩*/
int score_EN;/*英语成绩*/
int score;/*总分*/
std[SIZE],std1[SIZE];/*学生结构体变量数组*/
int getnum(char c[]);
void createCheckCode(char ch[]);
void welcome();
void main()

void swap(struct student *a,struct student *b);
char s;
char CheckCode[5]; /*自动生成的验证码*/
char CheckCode_Input[5];/*输入的验证码*/
char User_Name[100]="wahaha";/*预置用户名*/
char Password[100]="123456";/*预置密码*/
char User_Name_Input[100];/*用户输入用户名*/
char Password_Input[100];/*用户输入密码*/
int cz;/*用户选择菜单操作项*/
int n=0;/*输入学生信息数量*/
int i,j,k,exit=1,temp=0,t=1;/*循环标志i,i数量暂存变量k,退出系统标识exit*/
int XueHao,m;/*用户查询学号*/
char name_Input[20]='\0';/*查询输入学生姓名*/
int min_score,max_score;/*最低分,最高分*/
/********************学生结构体******************************/

system("cls");
printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t请输入用户名:");
scanf("%s",User_Name_Input);
system("cls");
while(strcmp(User_Name,User_Name_Input)!=0)

switch(getnum(User_Name_Input))

case 1:printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t用户名低于六位");
printf("\n\n\t\t请输入用户名:");
scanf("%s",User_Name_Input);
system("cls");
break;
case 2:printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t用户名高于六位");
printf("\n\n\t\t请输入用户名:");
scanf("%s",User_Name_Input);
system("cls");
break;
case 3:printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t用户名不存在!");
printf("\n\n\t\t请输入用户名:");
scanf("%s",User_Name_Input);
system("cls");
break;


printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t请输入用户名:wahaha\n\n\t\t");
printf("请输入密码:");
scanf("%s",Password_Input);
system("cls");
while(strcmp(Password,Password_Input)!=0)

printf("***************欢迎使用学生成绩管理系统***************\n");
printf("\n\n\t\t请输入用户名:wahaha\n\n\t\t");
printf("密码有误!\n");
printf("\n\t\t请输入密码:");
scanf("%s",Password_Input);
system("cls");

printf("***************欢迎使用学生成绩管理系统***************\n\n\n");
createCheckCode(CheckCode);
printf("\n\t\t验证码:%s\n",CheckCode);
printf("\n\t\t请输入验证码:");
scanf("%s",CheckCode_Input);
system("cls");
while(strcmp(CheckCode_Input,CheckCode)!=0)

printf("***************欢迎使用学生成绩管理系统***************\n\n\n");
createCheckCode(CheckCode);
printf("\n\t\t验证码:%s\n",CheckCode);
printf("\n\t\t请重新输入验证码:");
scanf("%s",CheckCode_Input);
system("cls");

/* welcome();*/
while(exit)

welcome();
printf("\n请选择操作序号:");
scanf("%d",&cz);
switch(cz)

case 1:printf("请录入学生信息:\n");
for( i=0;i<SIZE;i++)

fflush(stdin);
printf("请输入第%d位学生的学号:",n+1);
scanf("%d",&std[i].num);

while(t)

if(std[i].num<1000||std[i].num>1010)

printf("学号不符规范,请从1000递加\n重新输入:");
scanf("%d",&std[i].num);

else

for(j=0;j<n;j++)

if(std[j].num==std[i].num)

printf("学号重复,请重新输入:");
scanf("%d",&std[i].num);
break;

else
t=0;



printf("请输入第%d位学生的姓名:",n+1);
scanf("%s",std[i].name);
printf("请输入第%d位学生的性别:",n+1);
scanf("%d",&std[i].sex);
while(std[i].sex<0||std[i].sex>1)

printf("输入不符规范,1表示男|0表示女\n重新输入:");
scanf("%d",&std[i].sex);

printf("请输入第%d位学生的语文成绩:",n+1);
scanf("%d",&std[i].score_YuWen);
printf("请输入第%d位学生的数学成绩:",n+1);
scanf("%d",&std[i].score_Math);
printf("请输入第%d位学生的英语成绩:",n+1);
scanf("%d",&std[i].score_EN);
n++;
fflush (stdin);
printf("是否继续输入?(y/n)");
scanf("%c",&s);
if(s=='N'||s=='n') break;

break;
case 2:if(n==0)
printf("\n没有找到学生信息!");
else

printf("\n学生信息:\n");
for(i=0;i<n;i++)

printf("\n学号:%d\t姓名:%s\t性别:%d\t语文:%d\t数学:%d\t英语:%d",std[i].num,std[i].name,std[i].sex,std[i].score_YuWen,std[i].score_Math,std[i].score_EN);


printf("任意键返回!");
getch();
break;
case 3: printf("请输入你要修改的学生学号:\n");/*修改某学号学生的成绩.....*/
scanf("%d",&XueHao);
for(i=0;i<n;i++)

if(std[i].num==XueHao)

k=i;
break;


if(i>n)
printf("没有这个学好的学生!");
else

fflush(stdin);
printf("请输入学号为%d的学生的语文成绩:",XueHao);
scanf("%d",&std[i].score_YuWen);
printf("请输入学号为%d的学生的数学成绩:",XueHao);
scanf("%d",&std[i].score_Math);
printf("请输入学号为%d的学生的英语成绩:",XueHao);
scanf("%d",&std[i].score_EN);
printf("\n修改成功,按任意键返回!");
getch();

break;
case 4:printf("查找方式:\n\t1.学号\t2.姓名\t3.分数段\n"); /*;查询 按学号/姓名/分数段查询三种*/
printf("请输入查找方式序号:");
scanf("%d",&m);
while(m<=0||m>3)

system("cls");
welcome();
printf("查找方式:\n\t1.学号\t2.姓名\t3.分数段\n");
printf("\n输入错误,请重新输入:");
printf("\n请输入查找方式序号:");
scanf("%d",&m);

switch(m)

case 1:while(1)

printf("请输入你要查找的学生学号:\n");/*显示某学号学生的成绩.....*/
scanf("%d",&XueHao);
for(i=0;i<n;i++)

if(std[i].num==XueHao)

k=i;
break;


if(i>n)
printf("没有该学好的学生!");
else

printf("查找结果:\n学号:\t%d\n姓名:\t%s\n性别:\t%d\n语文:\t%d\n数学:\t%d\n英语\t%d",std[k].num,std[k].name,std[k].sex,std[k].score_YuWen,std[k].score_Math,std[k].score_EN);
fflush (stdin);
printf("\n是否继续查找?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;


break;
/*******************************************************/
case 2:while(1)

printf("请输入你要查找学生的姓名:\n");/*显示某姓名学生的成绩.....*/
scanf("%s",name_Input);
for(i=0;i<n;i++)

printf("*************");
if(strcmp(std[i].name,name_Input)==0)

k=i;
break;


if(i>n)
printf("没有找到!");
else

printf("查找结果:\n学号:\t%d\n姓名:\t%s\n性别:\t%d\n语文:\t%d\n数学:\t%d\n英语\t%d",std[k].num,std[k].name,std[k].sex,std[k].score_YuWen,std[k].score_Math,std[k].score_EN);
fflush (stdin);
printf("\n是否继续查找?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;


break;
/***********************************************************************************************/
case 3:while(1)

printf("请选择要查询科目:\n\t1.语文\t2.数学\t3.英语"); /*;查询 按分数段查询*/
scanf("%d",&m);
while(m<=0||m>3)

system("cls");
welcome();
printf("请选择要查询科目:\n\t1.语文\t2.数学\t3.英语");
printf("\n输入错误,请重新输入:");
printf("\n请输入您要查找的科目序号:");
scanf("%d",&m);

printf("请输入最高分:");
scanf("%d",&max_score);
printf("请输入最低分:");
scanf("%d",&min_score);
printf("查找结果:\n");
switch(m)

case 1:for(i=0;i<n;i++)

if(std[i].score_YuWen>=min_score&&std[i].score_YuWen<=max_score)

printf("查找结果:\n学号:\t%d\n姓名:\t%s\n性别:\t%d\n语文:\t%d\n数学:\t%d\n英语\t%d",std[k].num,std[k].name,std[k].sex,std[k].score_YuWen,std[k].score_Math,std[k].score_EN);
k=9;


if(k!=9)
printf("没有找到!");
break;
case 2:for(i=0;i<n;i++)

if(std[i].score_Math>=min_score&&std[i].score_Math<=max_score)

printf("查找结果:\n学号:\t%d\n姓名:\t%s\n性别:\t%d\n语文:\t%d\n数学:\t%d\n英语\t%d",std[k].num,std[k].name,std[k].sex,std[k].score_YuWen,std[k].score_Math,std[k].score_EN);
k=9;


if(k!=9)
printf("没有找到!");
break;
case 3:for(i=0;i<n;i++)

if(std[i].score_EN>=min_score&&std[i].score_EN<=max_score)

printf("查找结果:\n学号:\t%d\n姓名:\t%s\n性别:\t%d\n语文:\t%d\n数学:\t%d\n英语\t%d",std[k].num,std[k].name,std[k].sex,std[k].score_YuWen,std[k].score_Math,std[k].score_EN);
k=9;


if(k!=9)
printf("没有找到!");
break;

fflush (stdin);
printf("\n是否继续查询?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;
else

system("cls");
welcome();
printf("\n正在按分数段查询!\n");

break;

break;
case 5:while(1)

printf("请输入要删除学生的学号:\n");/*删除某些学生成绩....*/
scanf("%d",&XueHao);
for(i=0;i<n;i++)

if(std[i].num==XueHao)

k=i;
break;


if(i>n)
printf("没有这个学好的学生信息!");
else

if(k==n-1)

std[k].num=-1;
std[k].name[0]='\0';
std[k].sex=-1;
std[k].score_YuWen=-1;
std[k].score_Math=-1;
std[k].score_EN=-1;


else

for(i=k;i<n-1;i++)

std[i].num=std[i+1].num;
for(j=0;j<20;j++)
std[i].name[j]=std[i+1].name[j];
std[i].sex=std[i+1].sex;
std[i].score_YuWen=std[i+1].score_YuWen;
std[i].score_Math=std[i+1].score_Math;
std[i].score_EN=std[i+1].score_EN;

std[n-1].num=-1;
std[n-1].name[0]='\0';
std[n-1].sex=-1;
std[n-1].score_YuWen=-1;
std[n-1].score_Math=-1;
std[n-1].score_EN=-1;

n=n-1;
printf("删除成功!");

fflush (stdin);
printf("\n是否继续删除?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;
break;
case 6:while(1) /*排名次 总分以及单科成绩*/

printf("请选择排序科目:\n\t1.总分\t2.语文\t3.数学\t4.英语"); /*;按分数排序*/
printf("请输入排序科目的序号:");
scanf("%d",&m);
while(m<=0||m>4)

system("cls");
welcome();
printf("请选择排序科目:\n\t1.总分\t2.语文\t3.数学\t4.英语");
printf("\n输入错误,请重新输入:");
printf("\n请输入排序科目的序号:");
scanf("%d",&m);

printf("从大到小排序成功:\n");
temp=0;
switch(m)

case 1:for(i=0;i<n;i++)
std[i].score=std[i].score_YuWen+std[i].score_Math+std[i].score_EN;
for(i=0;i<n-1;i++)

for(j=0;j<n-i;j++)
if(std[j].score<std[j+1].score)
swap(&std[j],&std[j+1]);

break;
case 2:/*按语文成绩降序排序,使用冒泡排序*/
for(i=0;i<n-1;i++)

for(j=0;j<n-i;j++)
if(std[j].score_YuWen<std[j+1].score_YuWen)
swap(&std[j],&std[j+1]);

break;
case 3:/*按数学成绩降序排序,使用冒泡排序 */
for(i=0;i<n-1;i++)

for(j=0;j<n-i;j++)
if(std[j].score_Math<std[j+1].score_Math)
swap(&std[j],&std[j+1]);

break;
case 4:/*按英语成绩降序排序,使用冒泡排序*/
for(i=0;i<n;i++)

for(j=0;j<n-i;j++)
if(std[j].score_EN<std[j+1].score_EN)
swap(&std[j],&std[j+1]);

break;
default:break;

printf("排序结果请回到主菜单查看!\n");
fflush (stdin);
printf("\n继续排序?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;
else

system("cls");
welcome();
printf("\n正在排序!\n");


break;
case 7:while(1) /*比率及格率XX分以上XX分以上有多少人*/

printf("请选择计算科目:\n\t1.语文\t2.数学\t3.英语"); /*;查询 按分数查询*/
printf("请选择计算科目的序号:");
scanf("%d",&m);
while(m<=0||m>3)

system("cls");
welcome();
printf("请选择计算科目:\n\t1.语文\t2.数学\t3.英语");
printf("\n输入错误,请重新输入:");
printf("\n请选择计算科目的序号:");
scanf("%d",&m);

printf("请输入最低分:");
scanf("%d",&min_score);
printf("计算结果:\n");
temp=0;
switch(m)

case 1:for(i=0;i<n;i++)
if(std[i].score_YuWen>=min_score)
temp++;
break;
case 2:for(i=0;i<n;i++)
if(std[i].score_Math>=min_score)
temp++;
break;
case 3:for(i=0;i<n;i++)
if(std[i].score_EN>=min_score)
temp++;
break;
default:break;

printf("\n分数 >=%d 的比率为:%.2f\%",min_score,(temp*100.0)/n+0.005);
fflush (stdin);
printf("\n是否继续计算?(y/n)");
scanf("%c",&s);
if(s=='n'||s=='N')
break;
else

system("cls");
welcome();
printf("\n正在计算比率!\n");


break;
case 8:exit=0;printf("谢谢使用,再见!");break;/*退出 烦的我头都要爆了 */
default:break;


printf("任意键退出!");
getch();


int getnum(char c[])

if(strlen(c)<6)

return 1;

else if(strlen(c)>6)

return 2;

else

return 3;



void createCheckCode(char ch[])

char c;
int temp;
int i;
srand((unsigned)time(NULL));
for( i=0;i<4;i++)

temp=rand()%3;
switch(temp)

case 0: c=(char)(rand()%10+48); break;
case 1: c=(char)(rand()%26+65); break;
case 2: c=(char)(rand()%26+97); break;

ch[i]=c;

ch[4]='\0';


void welcome()

system("cls");
printf("***************欢迎使用学生成绩管理系统***************\n\n\n");
printf(" ***********登陆成功***********\n\n");
printf("1 增加成绩\t2 显示成绩\t3 修改成绩\t4 查询成绩\n\n5 删除成绩\t6 排序成绩\t7 比率统计\t8 退出程序\n");



void swap(struct student *a,struct student *b)
struct student t;
strcpy(t.name,(*a).name);
t.score_YuWen=(*a).score_YuWen;
t.score_Math=(*a).score_Math;
t.score_EN=(*a).score_EN;
t.score=(*a).score;

strcpy((*a).name ,(*b).name);
(*a).score_YuWen=(*b).score_YuWen;
(*a).score_Math=(*b).score_Math;
(*a).score_EN=(*b).score_EN;
(*a).score=(*b).score;

strcpy((*b).name ,t.name);
(*b).score_YuWen=t.score_YuWen;
(*b).score_Math=t.score_Math;
(*b).score_EN=t.score_EN;
(*b).score=t.score;
参考技术A 你给个邮箱,我把相应的基础学习内容给你发过去。 参考技术B 你是要干什么

设计一个一维数组的排序函数p_sort,并调用它对10个整数进行排序。p_sort函数原型如下:

设计一个一维数组的排序函数p_sort,并调用它对10个整数进行排序。p_sort函数原型如下:

void p_sort(int *p,int n)

其中,p是指向int型一维数组的指针变量,n是数组长度。

参考技术A

参考代码如下:

#include<stdio.h>
#define N 10
void p_sort(int *p,int n)

int i,j,t;
if(p==NULL)
return;
for(i=0;i<n-1;++i)
for(j=0;j<n-i-1;++j)
if(p[j]>p[j+1])
t=p[j];
p[j]=p[j+1];
p[j+1]=t;


int main()

int i,a[N];
for(i=0;i<N;++i)
scanf("%d",&a[i]);
p_sort(a,N);
printf("排序后:\\n");
for(i=0;i<N;++i)
printf("%d ",a[i]);
return 0;

以上是关于VC6一维数组和函数调用的主要内容,如果未能解决你的问题,请参考以下文章

C语言编写一个排序函数(对一维数组排序)并在主函数中调用

设计一个一维数组的排序函数p_sort,并调用它对10个整数进行排序。p_sort函数原型如下:

[pointer]调用函数找出一维数组中的最值,

编写函数sort()

将一个10个元素的一维数组用函数调用实现选择排序。

编写对具有n个元素的一维数组求和函数ArraySum()