第12周和第13周C语言编程作业

第12周

1

利用指针编写一函数,输入3个整数,按由大到小的顺序将它们输出。(15分)

题目内容:利用指针编写一函数,输入3个整数,按由大到小的顺序将它们输出。

输入格式:

%d

输出格式:

%3d

输入样例:

25 68 17

输出样例:

 68 25 17

#include<stdio.h>
int main()
{
	int a[3],*p=a,t,i,j;
	scanf("%d %d %d",p,p+1,p+2);
	for(j=0;j<2;j++)
	{
	for(i=0;i<2;i++)
	{
		if(*(p+i)<*(p+i+1))
		{
			t=*(p+i);
			*(p+i)=*(p+i+1);
			*(p+i+1)=t;
		}
	}
	}
	printf("%3d%3d%3d",*p,*(p+1),*(p+2));
	return 0;
}

2

用指向数组的指针变量实现输出指定学生的全部成绩。(15分)

题目内容:

有若干个学生的成绩(每个学生有4门课程),要求在用户输入学生序号以后,能输出该学生的全部成绩。用指向数组的指针变量实现。

使用数组 float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}}

输入格式:

%d

输出格式:

%8.2f

输入样例:

1

输出样例:

   56.00   89.00   67.00   88.00

#include<stdio.h>
int main()
{
	float score[][4]={{60,70,80,90},{56,89,67,88},{34,78,90,66}};
	int n;
	float (*p)[4];
	p=score;
	scanf("%d",&n);
	printf("%8.2f%8.2f%8.2f%8.2f",**(p+n),*(*(p+n)+1),*(*(p+n)+2),*(*(p+n)+3));
	return 0;
}

第13周

1

某班有5名同学,建立一个学生的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学生的平均成绩及名次。(30分)

题目内容:

某班有5名同学,建立一个学生的简单信息表,包括学号、姓名、3门课程的成绩,编写程序,计算每名学生的平均成绩及名次。(注:定义一个结构体类型,用结构指针作为函数参数)

输入格式:

%ld %s %f %f %f

输出格式:

%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n

输入样例:

201701 zhao 29.8 85.4 65.4
201702 qian 96.5 87.5 65.4
201703 sun 85.4 65.4 84.6
201704 li 63.4 95.4 86.3
201705 zhou 65.9 84.6 97.5

输出样例:

Number:  Name:        score:       Average:  rank:
201701   zhao      29.8 85.4 65.4     60.2          5
201702   qian       96.5 87.5 65.4     83.1          1
201703   sun        85.4 65.4 84.6     78.5          4
201704   li            63.4 95.4 86.3     81.7          3
201705   zhou      65.9 84.6 97.5     82.7          2

#include<stdio.h>
#define X 0
#define Y 0
int main()
{
	struct I
	{long int Number;
	 char Name[10];
	 float score[3];
	 float Average;
	 int rank;
	}n[5];
	int i,j,a[5],t;
	float x[5],y[5],m;
	for(i=0;i<5;i++)
		scanf("%ld %s %f %f %f",&n[i].Number,&n[i].Name,&n[i].score[0],&n[i].score[1],&n[i].score[2]);
	printf("Number:  Name:        score:       Average:  rank:\n");
	for(i=0;i<5;i++)
		n[i].Average=(n[i].score[0]+n[i].score[1]+n[i].score[2])/3;
	if(X)
	{
		printf("\n\n\n");
		printf("\n\n\n");
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%f、",n[i].Average);
		printf("\n\n\n");
	}
	for(i=0;i<5;i++)
		x[i]=n[i].Average;
	for(i=0;i<5;i++)
		y[i]=n[i].Average;
	if(X)
	{
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%f、",x[i]);
		printf("\n\n\n");
	}
	if(X)
	{
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%f、",y[i]);
		printf("\n\n\n");
	}
	for(i=0;i<5;i++)
	{
		t=i;
		for(j=i;j<5;j++)
			if(x[t]<x[j])
				t=j;
		if(t!=i)
		{
			m=x[t];
			 x[t]=x[i];
			 x[i]=m;
		}
	}
	/**/
	for(i=0;i<5;i++)
	{
		j=0;
		for(;j<5;j++)
			if(y[i]==x[j])
				break;
		a[i]=j;
	}
	/**/
	for(i=0;i<5;i++)
		a[i]++;
	if(Y)
	{
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%f、",x[i]);
		printf("\n\n\n");
	}
	if(Y)
	{
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%f、",y[i]);
		printf("\n\n\n");
	}
	if(Y)
	{
		printf("\n\n\n");
		for(i=0;i<5;i++)
			printf("%d、",a[i]);
		printf("\n\n\n");
	}
	for(i=0;i<5;i++)
		n[i].rank=a[i];
	for(i=0;i<5;i++)
		printf("%-9ld%-10s%-5.1f%-5.1f%-8.1f%-10.1f%-d\n",n[i].Number,n[i].Name,n[i].score[0],n[i].score[1],n[i].score[2],n[i].Average,n[i].rank);
	return 0;
}

注:这个题我忘了用函数了……

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值