当前位置:首页 » 编程软件 » 编程实践题

编程实践题

发布时间: 2023-05-13 15:04:15

c语言编程

要输入的分数太多,我懒得手数,用2位随机数代替手输入,输入函数我单独写了,你需要调用就行了,详细看备注。

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#definestuNum15//学生人数
#definescNum7//模块数
typedefstructstu//定义学生数据结构
{
intsid;//学生ID
intsc[scNum];//对应7个模块成绩
intsum;//总成绩
}STU;
voidinsertSTU(STU*stu);//输入15个学生的信息
voidinsertTest(STU*stu);//测试,用随机数代替输入,我懒得输入那么多成绩,你要手输,调用insertSTU替换该函数
voidprintfSTU(STU*stu);//按输入顺序打印15名学生7模块成绩及每个模块前三名的成绩
intmain()
{
STUstu[stuNum];//定义15个学生
//inti,j,sc;
srand(time(NULL));
insertTest(stu);//想手动输入这里改成insertSTU(stu)
printfSTU(stu);
return0;
}
voidprintfSTU(STU*stu)//按输入顺序打印15名学生7模块成绩及每个模块前三名信息及总分前三名信息
{
inti,j,k,sc;
STU*max[3],*sum[3],newstu;//max对应7个模块前3的学生结构指针sum对应总分前3学生结构指针
for(i=0;i<stuNum;i++)
{
printf("编号%02d的学生7模块成绩及总分分别为:",stu[i].sid);
for(j=0;j<scNum;j++)
{
sc=stu[i].sc[j];
printf("%02d",sc);
}
printf("%d ",stu[i].sum);
}


for(j=0;j<scNum;j++)
{
for(k=0;k<scNum;k++)
{
newstu.sc[k]=0;
newstu.sum=0;
}

max[0]=max[1]=max[2]=&newstu;
for(i=0;i<stuNum;i++)
{
if(stu[i].sc[j]>max[0]->sc[j])
max[0]=&(stu[i]);
elseif(stu[i].sc[j]>max[1]->sc[j])
max[1]=&(stu[i]);
elseif(stu[i].sc[j]>max[2]->sc[j])
max[2]=&(stu[i]);
}
printf("模块%02d前3名分别为:编号:%02d分数:%02d编号:%02d分数:%02d编号:%02d分数:%02d ",j+1,max[0]->sid,max[0]->sc[j],max[1]->sid,max[1]->sc[j],max[2]->sid,max[2]->sc[j]);
}

sum[0]=sum[1]=sum[2]=&newstu;
for(i=0;i<stuNum;i++)
{
if(stu[i].sum>sum[0]->sum)
sum[0]=&(stu[i]);
elseif(stu[i].sum>sum[1]->sum)
sum[1]=&(stu[i]);
elseif(stu[i].sum>sum[2]->sum)
sum[2]=&(stu[i]);
}
printf("总分前3名分别为:编号:%02d总分:%02d编号:%02d总分:%02d编号:%02d总分:%02d ",sum[0]->sid,sum[0]->sum,sum[1]->sid,sum[1]->sum,sum[2]->sid,sum[2]->sum);

}


voidinsertSTU(STU*stu)//输入15个学生的信息
{
inti,j,sc;
for(i=0;i<stuNum;i++)
{
stu[i].sid=i+1;
stu[i].sum=0;
printf("输入编号%d的学生的7个模块成绩:",i+1);
for(j=0;j<scNum;j++)
{
//scanf("%d",&sc);//我懒得输入那么多成绩,就用随机数代替,你要输入把这句恢复
sc=(int)(rand()%100);//用随即2位数代替输入,不需要就注释掉
stu[i].sc[j]=sc;
stu[i].sum=stu[i].sum+sc;
}
}
}
voidinsertTest(STU*stu)//测试用代替输入
{
inti,j,sc;
for(i=0;i<stuNum;i++)
{
stu[i].sid=i+1;
stu[i].sum=0;
for(j=0;j<scNum;j++)
{
sc=(int)(rand()%100);
stu[i].sc[j]=sc;
stu[i].sum=stu[i].sum+sc;
}
}
}

⑵ 问几个c语言的编程题

所有程序在win-tc和Dev-c++下试验通过,代码简练。
第一题:
/* 编一个程序,输入n个互不相等的整数存于数组中,并输出。程序如发现输入的数据已输入过,则要求重新输入。要求用指针实现。 */
#include <stdio.h>
#include <malloc.h>
int main( )
{
int i=0,j,k,n,flag,*p;
printf("Please input number of the digits:\n");
scanf("%d",&n);
p=(int *)malloc(n*sizeof(int));
printf("Please input %d digits one by one:\n",n);
do
{ flag=0;
scanf("%d",p+i);
for(j=0;j<i;j++)
{ for(k=j+1;k<i+1;k++)
if(*(p+k)==*(p+j))
{ printf("Input repetition! Please input again!\n");
flag=1;
break; /*如有重复立即退出该层循环,提高判断速度*/
}
if(flag==1)
break; /*如有重复立即退出该层循环,提高判断速度*/
}
if(flag==0)
i++;
}while(i<n);
printf("The input digits are:\n",n);
for(i=0;i<n;i++)
printf("%d\n",*(p+i));
system("pause");
return 0;
}

第二题:
# include <stdio.h>
# include <string.h>
# define MAX 81 /* 输入字符串不超过80字符,可更改 */
int cycle(char *s)
{
char *h,*t;
for(h=s,t=s+strlen(s)-1;t>h;h++,t--)
if(*h!=*t) break;
return t<=h;
}
int main()
{
char s[MAX];
system("cls");
while(1) /* 输入应不包括字符@,输入字符串的第一个字符为@,退出 */
{
printf("Please input the string:(input '@' to quit)\n");
scanf("%s",s);
if(s[0]=='@')
break;
if(cycle(s))
printf("%s is a cycle string.\n",s);
else
printf("%s is not a cycle string.\n",s);
}
return 0;
}

第三题:
# include <stdio.h>
# define N 20 /*设定人数为20,实际请更改*/
struct workerdent
{ char num[11]; /*工号超过10位时请加长*/
char name[13]; /*实际请更改,名字不超过12字符,一个汉字2个字符*/
int age;
int page;
}worker[N];

int main()
{
int i;

/*以下为输入*/
for(i=0;i<N;i++)
{printf("\nInput work number of worker %d:\n",i+1);
printf("NO.:");
scanf("%s",worker[i].num);
printf("name:");
scanf("%s",worker[i].name);
printf("age:");
scanf("%d",&worker[i].age);
printf("page:");
scanf("%d",&worker[i].page);
}

/*以下为输出*/
printf("NO. name age page\n");
for(i=0;i<N;i++)
{ printf("%-11s%-13s%-5d%-5d\n",worker[i].num,worker[i].name,worker[i].age,worker[i].page);
}
system("pause");
return 0;
}

热点内容
rmijava 发布:2025-09-18 08:38:26 浏览:18
sql软件和服务器怎么连接 发布:2025-09-18 08:27:47 浏览:937
手机java模拟器 发布:2025-09-18 07:13:29 浏览:417
linux线程的栈大小 发布:2025-09-18 07:09:42 浏览:633
废旧电脑做linux服务器 发布:2025-09-18 07:06:50 浏览:263
终端配置怎么写 发布:2025-09-18 06:44:42 浏览:804
ftp手机登陆 发布:2025-09-18 06:43:04 浏览:767
emc存储800电话 发布:2025-09-18 06:32:49 浏览:964
c语言编程与设计 发布:2025-09-18 06:09:15 浏览:724
2016年预算法 发布:2025-09-18 06:07:05 浏览:625