作业9

 

1.定义函数实现:输入若干名学生的成绩(输入人数或用负数结束均可),求其平均分,最高分和最低分,并指出最高分和最低分的学生(给出下标即可),输入一个成绩,说明是第几个学生的成绩,最后按照成绩从高到低排序后输出。(至少七个函数。输入函数、平均值函数、最大值下标函数、最小值下标函数,查找函数,排序函数,输出函数)

#include <stdio.h>
#define N 100
void readScore(int score[], int n);
double average(int score[],int n);
int findMax(int score[],int n);
int findMaxIndex(int score[],int n);
int findMin(int score[],int n);
int findMinIndex(int score[],int n);
int findscore(int score[],int n);
void bubbleSort(int score[],int n);
void print(int score[],int n);
int main ()
{
int score[N],n,max,maxIndex,min,minIndex,i,a[N];
double ave;
printf ("请输入人数\n");
scanf ("%d",&n) ;
printf("请输入成绩\n") ;
readScore(score,n);
ave=average(score,n);
{
printf("average is %.lf\n",ave);
}
max=findMax(score,n);
{
printf("max is %d\n",max);
}
maxIndex=findMaxIndex(score,n);
{
printf("maxindex is %d\n",maxIndex);
}
min=findMin(score,n);
{
printf("min is %d\n",min);
}
minIndex=findMinIndex(score,n);
{
printf("minindexis %d\n",minIndex);
}
i=findscore(score,n);
bubbleSort(score,n) ;
print(score,n);
return 0;
}
void readScore(int score[], int n)
{
int i;
for(i=0;i<n;i++)
{
scanf("%d",&score[i]);
}
}
double average(int score[],int n)
{
int i,sum;
double ave;
sum = 0;
for(i=0;i<n;i++)
{
sum+=score[i];
}
ave=(double)sum/n;
return ave;
}
int findMax(int score[],int n)
{
int i;
int max;
max=score[0];
for(i=1;i<n;i++)
{
if(score[i]>max)
{
max=score[i];
}
}
return max;
}
int findMaxIndex(int score[],int n)
{
int i,maxIndex;
maxIndex=0;
for(i=1;i<n;i++)
{
if(score[i]>score[maxIndex])
{
maxIndex=i;
}
}
return maxIndex;
}
int findMin(int score[],int n)
{
int i;
int min;
min=score[0];
for(i=1;i<n;i++)
{
if(score[i]<min)
{
min=score[i];
}
}
return min;
}
int findMinIndex(int score[],int n)
{
int i,minIndex;
minIndex=0;
for(i=1;i<n;i++)
{
if(score[i]<score[minIndex])
{
minIndex=i;
}
}
return minIndex;
}
int findscore(int score[],int n)
{
int x,i;
printf("input score ");
scanf ("%d",&x);
for(i=0;i<n;i++)
{
if (score[i]==x)
{
printf("the number is %d\n",i);
}
if(score[i]!=x)
{
printf("输入错误\n");
}
}
return 0;
}
void bubbleSort(int score[],int n)
{ int i,j,t,flag;
for(i=0;i<n-1;i++)
{
flag=0;
for(j=0;j<n-1-i;j++)
{
if (score[j]>score[j+1])
{ t=score[j];
score[j]=score[j+1];
score[j+1]=t;
flag=1;
}
}
if(flag==0)
break;
}
}
void print(int score[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%5d",score[i]);
}
}

2.定义长度为100的整型数组,将数组元素赋初值为1,2……100,将其中所有值为3或7倍数的值删除,最后打印输出数组中剩余数的个数及每个数。

#include<stdio.h>
#define N 100
int main()
{
    int a[N],i,j=0;
    for(i=0;i<N;i++)
    {
        a[i]=i+1;
        if(a[i]%3!=0&&a[i]%7!=0)
        {
            printf("%3d  ",a[i]);
            j++;
        }

    }
    printf("\n共有%d个\n",j);
    return 0;
}

附加题

1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的 前m位。要求:(1)数组值在程序中初始化(2)m从键盘输入。

#include <stdio.h>
#define N 10
int main()
{
    int wp[N],i=0,j=0,m,t;
    printf("原数组为:\n");
    for(i=0;i<N;i++)
    {
        j++;
        wp[i]=j;
        printf("%d  ",wp[i]);
    }
    printf("\n");
    printf("请输入后移个数\n");
    scanf("%d",&m);
     for(j=1;j<=m;j++)
    {
        t=wp[N-1];
        for(i=N-1;i>0;i--)
           {
            wp[i]=wp[i-1];
        }
        wp[0]=t;
    }
    printf("新数组为:\n");
    for(i=0;i<N;i++)
    {
        printf("%d  ",wp[i]);
    }
    printf("\n");
    return 0;
}

2. 数字加密:输入一个四位数,将其加密后输出。方法是将该数每一位上的数字加9,然后除以10取余,做为该位上的新数字,最后将千位和十位上的数字互换,百位和个位上的数字互换,组成加密后的新四位数。例如输入1257,经过加9取余后得到新数字0146,再经过两次换位后得到4601。(使用数组)

#include <stdio.h>
int main()
{
    int i,b[4];
    char a[4];
    printf("请输入一个四位数\n");
    for(i=0;i<4;i++)
    {
        scanf("%c",&a[i]);
        b[i]=(a[i]-48+9)%10;
    }
    printf("%d%d%d%d",b[2],b[3],b[0],b[1]);
    printf("\n");
    return 0;
}

程序分析:

程序1

#include <stdio.h>
void swap(int x[]);
int main()
{
     int a[2]={1,2};
    swap(a);
    printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);
    return 0;
}
void swap(int x[])
{
    int z;
    z=x[0];
    x[0]=x[1];
    x[1]=z;
}

程序2

#include <stdio.h>
void swap(int x,int y);
int main()
{
    int a[2]={1,2};
    swap(a[0],a[1]);
    printf("a[0]=%d\na[1]=%d\n",a[0],a[1]);
    return 0;
}
void swap(int x,int y)
{
     int z;
     z=x;
     x=y;
     y=z;
}

分析上述两个程序的执行结果。说明为什么?

程序分析:第一个程序中函数用了数组,内容可以被交换,第二个程序中没有运用数组定义函数,导致主函数中内容没有实现交换。

实验总结:

1.定义函数时要想清楚有没有返回值.

2.数字的初始值一定要定义.

3.字符的类型要想好.

4.尽量简化程序 ,比如相同的循环可以直接套在一个循环里.

时间: 2024-08-10 21:30:31

作业9的相关文章

软件工程——第二次作业(2)

施工中-- 作业要求:https://edu.cnblogs.com/campus/nenu/SWE2017FALL/homework/922 项目要求是编写出一个拥有"词频统计"功能的小程序,作为一个小程序,若只是实现基本的词频统计功能,其实并不是很难.但是,如果再附加一些需求和功能的话就会让我感到有点难度了,更何况为了以后课程的要求,我选择使用Visual Studio 2015编译器和C#语言这两种从未学过的工具,在4-5天之内共10个小时左右(预计,但是实际上确实是花了更多时间

2017282110285--第一次个人作业

第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 其实我从高一就开始接触编程了,在高中我搞了两年的算法竞赛,算是有一点算法基础(捂脸,其实实力弱得一批),也是在那个时候开始爱上了编程.因此在高考结束后就报了信息安全专业,哪怕那时候父母不是很支持我报跟计算机相关的专业.我认为我的起步条件会比一般的零基础的萌新稍微好那么一点点,但也就仅限于此了,毕竟有天赋的人比比皆是,他们只是缺少一个契机罢了,入门之后分分钟起飞的也是一大把,更不用说那些大牛博主了,他们的程序员

python学习:程序控制结构·作业20141219

Python学习:程序控制结构 20141219 编程环境: windows 7 x64 python 2.7.6 题目: 1 编写程序,完成下列题目(1分) 题目内容: 如果列出10以内自然数中3或5的倍数,则包括3,5,6,9.那么这些数字的和为23.要求计算得出任意正整数n以内中3或5的倍数的自然数之和. 输入格式: 一个正整数n. 输出格式: n以内中3或5的倍数的自然数之和. 输入样例: 10 输出样例: 23 时间限制:500ms内存限制:32000kb n = int(raw_in

团队编程项目作业

团队名称: 简单 队长 学号:2015035107224 姓名:张志鹏 成员 学号:2015035107071 姓名:邱阳阳 学号:2015035107044 姓名:刘孝东 学号:2015035107007 姓名:孙弘原 学号:2015035107005 姓名:刘文帅 学号:2015035107009 姓名:杨琳 团队编程项目作业名称:爬取豆瓣电影TOP250 选择该团队编程项目原因:感觉项目有意思

团队项目编程作业

团队名称: 简单 队长 学号:2015035107224 姓名:张志鹏 成员 学号:2015035107071 姓名:邱阳阳 学号:2015035107044 姓名:刘孝东 学号:2015035107007 姓名:孙弘原 学号:2015035107005 姓名:刘文帅 学号:2015035107009 姓名:杨琳 团队编程项目作业名称:爬取豆瓣电影TOP250 选择该团队编程项目原因:我爱学习

团队作业八——第二次团队冲刺(Beta版本)第6天

团队作业八--第二次团队冲刺(Beta版本)第5天 一.每个人的工作 (1) 昨天已完成的工作 简单模式逻辑代码涉及与相关功能的具体实现 (2) 今天计划完成的工作 修改完善注册登录内容界面,编辑错题文件写入. (3) 工作中遇到的困难 今天花了较多时间在完善登录注册界面上,这让我们比较担心,如果每天都花很多时间在解决之前的问题,当天的任务又做不好,会不会赶不上进度.如果每天都不能正常完美的完成每天任务,那冲刺最后一天结束的时候,又哪里再有一个明天给我们完善代码.且今天还遇到了写入SD存储卡文件

第四周作业(汇总)

本周作业: 1.对四则运算软件需求的获取方式进行实践,例如使用调查问卷访问相关关系人等. 答: 本次是借助“问卷星”网站来发布问卷进行调查的.问卷地址:https://sojump.com/jq/9942880.aspx 本次问卷针对学生.家长和老师三个对象进行调查,对 四则软件进行需求分析.问卷调查结束后,问卷星还提供数据分析服务. 2.采用四象限法将你小组的四则运算软件的需求功能进行分类.阐述其优势与不足. 3.尝试把四则运算软件需求进行分解,变为每个小组成员可执行的积压工作项,分配这些工作

个人作业-Week3:代码复审

软件工程师的成长 我在上大学之前,对于软件工程师之类并无概念,并且高初中的电脑课也从未提及过写代码之类的东西,更多的都是一些教一些办公软件的使用(笑,明明电脑课总是因为老师“有事”变成其他课,根本就没上过几节吧),来到大学后得知一些同学高中就开始搞各种竞赛后,我感到十分惊讶,什么,从小热爱学习XX,一路坚持,最终成为XX大师的人小说以外真的有啊.大学之后的课余时间更是鲜有与软件工程相挂钩的事情,用一句话概括,就是过着这些博主批判对象的生活,十分尴尬.选这个课就是觉得应该做出些改变了,然而在第一次

z作业二总结

这是我的第二次作业,之前在课上所学的我发现已经忘得差不多了,这次的作业让我做的非常累,感觉整个人生都不太好了. 作业中的知识点:int(整型) float(单精度) double(双精度) char(字符型) 任何变量都必须先定义后使用 变量=表达式注:左边必须是单个变量 printf—格式控制字符 普通字符:原样输出. 格式控制说明:按指定的格式输出数据,与数据类型有关 >:大于 <:小于 <=,>=小于等于,大于等于 ==:等于 !=:不等于 实验中遇到的困难:知识点基本上都忘

第四周作业

第四周作业 1.复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限. (1)复制/etc/skel目录为/home/tuser1 [[email protected] ~]# cp -r /etc/skel/ /home [[email protected] ~]# mv /home/skel /home/tuser1 [[email protected] ~]# ll -a /home/tuser1/ total 2