#include<stdioh>
#include<stringh>
#include<malloch>
typedef struct stu //一个学生的档案
{
char num[20];//学号
char name[20];//姓名
float score[5]; //成绩,前三门是单科成绩,第四个是总分,最后一个是平均分
}student;
student s[10]; //所有学生的信息
void main()
{
void init();//初始化函数申明
void sort();//排序函数申明
void print();//输出函数申明
init();
sort();
print();
}
void init()//初始化所有学生的档案
{
int i,j;
for(i=0;i<10;i++) //逐个键入学生的信息
{
printf("请输入一学生的学号:");
scanf("%s",s[i]num);
printf("请输入该学生的姓名:");
scanf("%s",s[i]name);
printf("请输入该学生的三门成绩:");
s[i]score[3]=0;
for(j=0;j<3;j++)
{
scanf("%f",&s[i]score[j]);
s[i]score[3]+=s[i]score[j]; //求总分
}
s[i]score[4]=s[i]score[3]/3; //求平均分
}
printf("学生档案建立成功!\n");
}
void sort()
{
int i,j,k;
char str[20];
float temp;
for(i=0;i<9;i++) //主循环,进行排名
for(j=i+1;j<10;j++)
if(s[j]score[3]>s[i]score[3])
{
strcpy(str,s[i]num); //交换学号
strcpy(s[i]num,s[j]num);
strcpy(s[j]num,str);
strcpy(str,s[i]name); //交换姓名
strcpy(s[i]name,s[j]name);
strcpy(s[j]name,str);
for(k=0;k<5;k++) //交换成绩
{
temp=s[i]score[k];
s[i]score[k]=s[j]score[k];
s[j]score[k]=temp;
}
}
}
void print()
{
int i;
for(i=0;i<10;i++)
printf("%s %s %1f %1f %1f %1f %1f\n",s[i]num,s[i]name,s[i]score[0],s[i]score[1],s[i]score[2],s[i]score[3],s[i]score[4]
/按照要求和提示我写了patient Creat()、patient Delete()、int InLine(patient head)、patient OutLine(patient head)、int Search(patient head)函数,因为不清楚你对程序控制的要求,我简单地写了个控制菜单int menu()函数,用来简单控制程序。你可以根据需要修改int menu()和int main(),在需要的地方声明链表头指针patient head
此程序在DEV-CPP测试通过/
#include<stdioh>
#include<stringh>
#define LEN sizeof(patient)
int IsExist;
struct date
{
char name[20];
char sex[7];
int age;
struct date next;
};
typedef struct date patient;
patient Creat() //创建链表
{
patient head=(patient )malloc(LEN);
if(head==NULL) return NULL; //创建失败,返回0
printf("Input name,sex(\"male\" or \"female\"),age:");
scanf("%s %s %d",&head->name,&head->sex,&head->age);
head->next=NULL;
IsExist=1; //标记链表存在
return(head);
}
patient Delete()
{
return NULL;
}
int InLine(patient head) //排队
{
patient p1,p2;
p1=head;
while(p1->next!=NULL) p1=p1->next; //找链尾
p2=(patient )malloc(LEN);
if(p2==NULL) return 0; //新增元素失败,返回0
printf("Input name,sex(\"male\" or \"female\"),age:");
scanf("%s %s %d",&p2->name,&p2->sex,&p2->age);
p1->next=p2;
p2->next=NULL;
return 1;
}
patient OutLine(patient head) //就诊病人离开
{
if(!IsExist) return 0; //链表不存在,返回0
patient p1,p2;
p1=head;p2=head->next;
if(head->next==NULL) //链表只有一个元素,删除链表
{
IsExist=0;
return(Delete());
}
if(p2!=NULL) return(p2);
}
int Search(patient head) //查询自己当前位置
{
patient p;
p=head;
int i=0;
char sea_name[20];
if(!IsExist) return(i); //链表不存在,返回0
i++;
printf("Input your name:");
scanf("%s",sea_name); //输入姓名并查找
while(strcmp(p->name,sea_name))
{
i++;
p=p->next;
}
return(i); //返回当前位置
}
int menu() //菜单函数
{
int quit=0,temp; //quit变量用于控制退出程序
int select;
static patient head;
printf("1Line up\n2Search my state\n3Delete the first element\n4Exit\nYou want to:");
scanf("%d",&select);
switch(select)
{
case 1:if(!(IsExistInLine(head):(head=Creat()))) exit(0);return 0;
//排队,如果链表不存在则创建,存在则增加长度, *** 作失败则终止程序
case 2:if(temp=Search(head)) printf("There are %d persons\n",temp);return 0;
case 3:head=OutLine(head);return 0;
case 4:return 1;
}
}
int main()
{
IsExist=0;
int quit;
do
{
quit=menu();
}while(!quit);
return 0;
}
一、
1B
2A
二、
1
#include <stdioh>
void strcopy(char s,char t)
{ int i=0;
while((t+1) != NUll)
{ s=t;
i++;
t++;
}
}
void main()
{ char a[20],b[10];
gets(b);
strcopy(a,b);
puts(a);
}
2
w,one
3p表示a (&a)= p
三
1第一个是正确的 具体怎么改 我还没想好 方法很多
2
ABCDEFG
CDEFG
EFG
G
可以设置每个题目的关键词或者题目的标题,这个在数据库中设为表subject
然后依据每个题目,建立相关答案的表answer
可以架构在web上,利用ajax,输入查询内容,匹配keywords,然后匹配answer
也可以利用正则,用JS来写全部程序。
前者思路清晰, *** 作没什么难点。
后则,涉及到JS的多级数组,正则匹配,麻烦但不需要服务器支持。
可以参考下17173的答题系统。只支持IE,不支持FF等。
以上就是关于程序设计题目(用C语言)全部的内容,包括:程序设计题目(用C语言)、急求一道C语言题目,怎么编程序、C语言程序设计题目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)