【拯救大学牲】人民邮电出版社C语言程序设计第八章编程题答案(下)

 注:本文所有程序均为笔者自己编写,仅供交流学习使用,欢迎一切纠错与指正。

 

目录

六、使用指针编写程序,求两个向量的内积。

七、使用指针,求10个数均方差。

八、使用指向一维数组元素的指针作为函数参数,编写冒泡法、选择法实现从小到大排序的函数,并编写main()函数实现排序。

九、求某班50个学生的5门课平均成绩。


六、使用指针编写程序,求两个向量的内积。

#include <stdio.h>

int main()
{
	int a[3],b[3],sum=0;
	int i;
	int *p = a,*q = b;
	printf("请输入向量a的三个坐标:꣺");
	for(i=0;i<3;i++)
	{
		scanf("%d",&a[i]);
	}
	printf("请输入向量b的三个坐标:꣺");
	for(i=0;i<3;i++)
	{
		scanf("%d",&b[i]);
	}
	for(i=0;i<3;i++)
	{
		sum += *p**q;
		p++;
		q++;
	}
	printf("%d",sum);

	return 0;
}

七、使用指针,求10个数均方差。

#include <stdio.h>
#include <math.h>

int main()
{
	float a[10],xi=0,i=0,s;
	float *p = a;
	printf("请输入10个数:");
	for(p;p<a+10;p++)
	{
		scanf("%f",p);
	}
	for(p=a;p<a+10;p++)
	{
		xi += *p;
	}
	xi /= 10;
	for(p=a;p<a+10;p++)
	{
		i += pow(*p-xi,2);
	}
	s = sqrt(i/10);
	printf("%f",s);

    return 0;
}

八、使用指向一维数组元素的指针作为函数参数,编写冒泡法、选择法实现从小到大排序的函数,并编写main()函数实现排序。

#include <stdio.h>

void BubbleSort(int *p,int n)
{
	int t;
	int i;
	while(n)
	{
		for(i = 0;i<n-1;i++)
		{
			if(*(p+i)>*(p+i+1))
			{
				t = *(p+i);
				*(p+i) = *(p+i+1);
				*(p+i+1) = t;
			}
		}
		n--;
	}
}

void SelectSort(int *p,int n)
{
	int max = *p;
	int i,j,t;
	while(n)
	{
		max = 0;
		for(i = 0;i<n;i++)
		{
			if(max<*(p+i))
			{
				j = i;
				max = *(p+i);
			}
		}
		t = *(p+n-1);
		*(p+j) = t;
		*(p+n-1) = max;
		n--;
	}
}

int main()
{
	int a[10],b[10],*p = a,*q = b;
	int i;
	printf("请输入需要排序的10个数:");
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
		b[i] = a[i];
	}
	BubbleSort(p,10);
	SelectSort(q,10);
	for(i=0;i<10;i++)
	{
		printf("%d\t",a[i]);
	}
	printf("\n");
	for(i=0;i<10;i++)
	{
		printf("%d\t",b[i]);
	}

	return 0;
}

九、求某班50个学生的5门课平均成绩。

#include <stdio.h>

int main()
{
    int grades[50][5] = {
        {90,36,49,40,81},
        {37,64,25,13,57},
        {20,46,23,57,26},
        {46,68,23,47,1},
        {36,85,1,25,57},
        {25,47,69,84,35},
        {34,23,74,13,46},
        {25,74,32,48,86},
        {35,85,21,47,9},
        {2,86,4,37,58,},
        {25,58,2,85,23},
        {75,23,47,23,12},
        {25,47,96,23,74},
        {57,24,57,23,57},
        {36,86,75,58,34},
        {37,13,74,13,74},
        {36,58,63,23,75},
        {25,75,45,86,43},
        {25,75,75,31,47},
        {47,97,59,53,23},
        {36,78,53,23,64},
        {35,64,86,57,31},
        {75,23,46,1,74},
        {36,85,63,23,45},
        {35,64,32,13,64},
        {97,75,86,96,86},
        {90,36,49,40,81},
        {37,64,25,13,57},
        {20,46,23,57,26},
        {46,68,23,47,1},
        {36,85,1,25,57},
        {25,47,69,84,35},
        {34,23,74,13,46},
        {25,74,32,48,86},
        {35,85,21,47,9},
        {2,86,4,37,58,},
        {25,58,2,85,23},
        {75,23,47,23,12},
        {25,47,96,23,74},
        {57,24,57,23,57},
        {36,86,75,58,34},
        {37,13,74,13,74},
        {36,58,63,23,75},
        {25,75,45,86,43},
        {25,75,75,31,47},
        {47,97,59,53,23},
        {36,78,53,23,64},
        {35,64,86,57,31},
        {75,23,46,1,74},
        {36,85,63,23,45},
    };
    int i,j;
    float sum,avg;
    for(i=0;i<5;i++)
    {
        sum = 0;
        for(j=0;j<50;j++)
        {
            sum += grades[i][j];
        }
        avg = sum/50;
        printf("此门课平均成绩为:%f\n",avg);
    }

    return 0;
}

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
设计目的: 本教程旨在帮助初学者了解C语言的基本语法和数据类型,同时通过实现一个简单的学生成绩管理系统,让读者学习如何使用C语言进行编程和数据处理。 设计内容: 本教程分为以下几个部分: 1. C语言基础知识:介绍C语言的基本语法和数据类型,包括变量、运算符、控制语句、函数等。 2. 学生成绩管理系统需求分析:分析学生成绩管理系统的功能需求,包括添加学生信息、查询学生成绩、修改学生成绩、删除学生信息等。 3. 学生成绩管理系统设计与实现:根据需求分析,设计学生成绩管理系统的数据结构和算法,并用C语言实现。 4. 学生成绩管理系统测试与调试:对学生成绩管理系统进行测试和调试,确保其功能正常。 设计思路: 本教程采用面向对象的设计思路,将学生信息和成绩封装为一个结构体,通过定义相关函数实现添加、查询、修改和删除等功能。 具体实现流程如下: 1. 定义一个结构体,包含学生姓名、学号、性别、年龄和成绩等信息。 2. 定义添加学生信息函数,实现向学生信息数组中添加学生信息的功能。 3. 定义查询学生成绩函数,实现根据学号查询学生成绩的功能。 4. 定义修改学生成绩函数,实现修改学生成绩的功能。 5. 定义删除学生信息函数,实现删除学生信息的功能。 6. 编写主函数,实现对学生成绩管理系统的调用和测试。 7. 进行测试和调试,确保学生成绩管理系统的功能正常。 设计结果: 通过本教程的学习和实践,读者可以掌握C语言的基本语法和数据类型,了解面向对象的设计思路,掌握数据结构和算法的实现方法,以及如何使用C语言进行编程和数据处理。 同时,本教程提供了一个简单的学生成绩管理系统的设计和实现,使读者可以通过实践进一步了解和掌握C语言的编程能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

风痕天际

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值