首页 > 代码库 > 第九次作业

第九次作业

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

# include<stdio.h>
# define N 100
void renshu(int sore[],int a);
float pingjun(int sore[],int a);
void  max(int sore[],int a);
void  min(int sore[],int a);
void  find(int sore[],int a);
void paixu(int sore[],int a);
void shuchu(int sore[],int a);
int main()
{
    int a,b,c,d,e,h,n;
    int sore[N]={0};
    printf("输入成绩人数\n");
    scanf("%d",&a);
    printf("输入成绩\n");
    renshu(sore,a);
    printf("平均数为%.2f",pingjun(sore,a));
    find(sore,a);
    min(sore,a);
    max(sore,a);
    paixu(sore,a);
    shuchu(sore,a);
    return 0;
}
void renshu(int sore[],int a)
{
    int b;
    for(b=0;b<a;b++)
    {
        scanf("%d",&sore[b]);
     } 
}
float pingjun(int sore[],int a)
{
    int b,sum=0;
    float average;
    for(b=0;b<a;b++)
    {
        sum=sum+sore[b];
    }
    average=(float)sum/a;
    return average;
}
void  find(int sore[],int a)
{
    int e,b,c;
    printf("输入查找的分数\n");
    scanf("%d",&e);
    for(b=0;b<a;b++)
    {
        if(e==sore[b])
        {
        printf("他是%d号\t",b+1);
        }
    }
    printf("\n");
}
void paixu(int sore[],int a)
{
    int b,c,d,e=0;
    for(b=0;b<a-1;b++)
    {
        for(c=0;c<a-1-b;c++)
        {
            if(sore[c]>sore[c+1])
            {
                e=sore[c];
                sore[c]=sore[c+1];
                sore[c+1]=e;
            }
        }
    }
}
void shuchu(int sore[],int a)
{
    int b,d;
    for(b=0;b<a;b++)
    {
        d=sore[b];
        printf("%d\t",d);
    }
    printf("\n");
}
void  max(int sore[],int a)
{
    int b,c,d,max,n,index[N]={0},e=0,h;
    max=sore[0];
    n=0;
    for(b=0;b<a;b++)
    {
        if(sore[b]==max)
        {
        index[++n]=b;
        }
        else if(sore[b]>max)
        {
            max=sore[b];
            n=0;
            index[++n]=b;
        }
    }
    for(b=1;b<=n;b++)
    {
        e=index[b];
        printf("最大%d\t",e+1);
    }
    printf("\n");
}
void  min(int sore[],int a)
{
    int b,c,d,e,min=0,n,index[N]={0},h;
    min=sore[0];
    n=0;
   for(b=0;b<a;b++)
    {
        if(sore[b]==min)
        {
        index[++n]=b;
        }
        else if(min>sore[b])
        {
            min=sore[b];
            n=0;
            index[++n]=b;
        }
    }
    for(b=1;b<=n;b++)
    {
        e=index[b];
        printf("最小%d\t",e+1);
    }
    printf("\n");
}

技术分享

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

# include <stdio.h>
# define N 100
void saber(int shu[N]);
void shuchu(int shu[N]); 
int main()
{
    int a,b,c,d,e;
    int shu[N]={0};
    for(a=0,b=1;a<N;a++,b++)
    {
        shu[a]=b;
    }
    saber(shu);
    shuchu(shu); 
    return 0;
}
void saber(int shu[N])
{
    int a,b,c,d;
    for(a=0;a<N;a++)
    {
        if((shu[a]%3==0)||(shu[a]%7==0))
        {
            shu[a]=0;
        }
    }
}
void shuchu(int shu[N])
{
    int a,b=0,c,d;
    for(a=0;a<N;a++)
    {
        if(shu[a]==0)
        {
            continue;
        }
        else
        {
            printf("%-3d\t",shu[a]);
            ++b;    
        }
        if(b%10==0)
        {
            printf("\n");
        }
    }
    printf("共有%d个",b);
}

技术分享

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

# include<stdio.h>
# define N 4 
int main ()
{
    int b,c,d,e,f,shu[N]={0};
    char a;
    printf("输入一个四位数整数加密\n");
    for(b=0;b<4;b++)
    {    
       scanf("%c",&a);
        shu[b]=((a-48)+9)%10;
    }
    c=shu[0]*10+shu[2]*1000+shu[1]+shu[3]*100;
    printf("%d\n",c);
          return 0;    
 } 

技术分享

 1.将数组a中的10个元素后移m位,移出的m位顺序存放在数组的 前m

 

 

 

实验总结:

1.第一题中应用的函数较多,一个一个的来,简单一点,

2.在函数中into  void 两种,比较喜欢第二个当然有时因题而义,有时必须要返回值存在,

3用函数多了老是忘打return 0;尴尬;单词量较少,对于定义的函数名很随意,还有变量的定义也一样,

4.会做的一想就行,有的连体都没看懂,理解问题;

 

程序1

技术分享

 

第一个没有问题程序就是一个数的转换,两个数在数组中变一下位置;没有错误但是仅仅限于这两个数的转换;

程序2

技术分享

 

第二个程序没有实现转换;在函数部分出现问题,定义的函数实际上没有参加数的转换,函数使用错误,更改的话按照第一个就可以;

第九次作业