程序设计与问题求解实验报告三

程序设计与问题求解实验报告三

——有序数据程序设计


前言


提示:以下是本篇文章正文内容,下面案例可供参考

一、实验目的

1.掌握循环程序设计思路;
2.能熟练使用3种循环结构对问题进行求解;
3.掌握穷举法、递推法等在工程问题中的应用。

二、实验内容和步骤

1.改正下列程序错误,使之完成规定的功能:

错误代码:该程序统计数组元素之和并输出。

#include <stdio.h>

int  main(void)
{
	int a[5]={5,4,3,2,1};
	int i;
	for (i=1;i<=5;i++)
	{
		sum=sum+a[i];
	}
	printf("sum=%f\n",Sum);
	return  0;
}

修改后:
在这里插入图片描述
错误分析:
1.Sum没有定义
2.i的值只从0到4
3.整型格式改%f为%d
4.Sum改为sun

2.编写程序实现以下功能

(1) 输入N 个不大于100的正整数(Ν ≤10 )存入数组 a 中,输出 a 中的最大值,最小值及求出其平均值(保留两位小数),其中N的值由用户输入。
实现代码:

#include <stdio.h>
int  main(void)
{
    int a[100],i,j,N,sum=0,max=0,min=a[0];
    
    double p;
    scanf("%d\t",&N);
    for(i=0;i<N;i++)
    {
        scanf("%d\n",&a[i]);
    }
    min=a[0];
    for(i=0;i<N;i++)
    {
        sum+=a[i];
        if(a[i]>max)max=a[i];
        if(a[i]<min)
        min=a[i];
    }
        
    p=sum/(double)N;
    printf("%d %d %.2lf",max,min,p);
    return  0;
}

测试:
在这里插入图片描述
(2) 餐饮服务质量调查打分
某公司的主管需要了解一年来公司的营业状况,比较一下各月份的销售收入状况。如果仅给出一大堆数据,这显然太不直观了,如果能将这些数据以条形图(直方图)的形式表示,将会大大增加这些数据的直观性,也便于数据的分析与对比。下面以顾客对餐饮服务打分为例,练习这方面的程序编写方法。假设有40个学生被邀请来给自助餐厅的食品和服务质量打分,分数划分为1~10这10个等级(1表示最低分,10表示最高分),试统计调查结果,并用*打印出如下形式的统计结果直方图。
Grade Count Histogram
1 5 *****
2 10 **********
3 7 *******

10 3 ***

代码实现:

#include<stdio.h>
#define N 10
int main()
{
    int score[40],count[11]={0};
    int i,j;
    for(i=0;i<40;i++)
    {
        scanf("%d",&score[i]);
        count[score[i]]++;
    }
    for(i=1;i<=10;i++)
    {
        printf("%d\t%d\t",i,count[i]);
        for(j=0;j<count[i];j++)
        printf("*");
        printf("\n");
    }
}

测试:
在这里插入图片描述
3.检验并打印魔方矩阵
在下面的5×5阶魔方矩阵中,每一行、每一列、每一对角线上的元素之和都是相等的,试编写程序将这些魔方矩阵中的元素读到一个二维整型数组中,然后检验其是否为魔方矩阵,并将其按如下格式显示到屏幕上。
在这里插入图片描述
代码实现:
在这里插入图片描述
在这里插入图片描述


三、实验总结

遇到的问题:餐饮服务质量调查打分;检验并打印魔方矩阵
解决方法:餐饮服务这题一开始我是用switch语句来实现打分的选择的,可是测试的时候实际输出那一 栏显示的是超时了,后来我就换了一种语句来实现它的选择。
魔方矩阵这题我一开始并没有想到函数,而是尝试了很多种我觉得没问题的方法但它最终输 出的都是”NO”,原因我还没有找到。

实验收获:
1.掌握循环程序设计思路;
2.能熟练使用3种循环结构对问题进行求解;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值