第十二堂课后作业

来源:互联网 发布:硕风和叶 知乎 编辑:程序博客网 时间:2024/05/28 05:13
作业1:
通过输入两个加数,给学生出一道加法运算题。如果输入答案正确,则显示“Y”;否则显示“N”。
要求:程序循环执行n次,用函数实现判断对错和输出结果
输入输出示例:(括号内部分是对输入输出的解释,不要出现在程序中)
示例一: 
   1,2(输入)
   1+2=4(1+2=由程序输出,4由键盘输入)
   N. (由程序输出)
示例二:
   1,2(输入)
   1+2=3(1+2=由程序输出,3由键盘输入)
   Y(由程序输出).


#include<stdio.h>void roof(int a,int b,int c){if(a+b==c)printf("Y\n");elseprintf("N\n");}void main(){while(1){int a,b,c;printf("请输入两个整数:\n");scanf("%d%d",&a,&b);printf("%d+%d=",a,b);scanf("%d",&c);roof (a,b,c);}}

-----------------------分割线-----------------------
作业2:
统计和分析某班学生考试成绩,实现如下学生成绩管理功能:
(1)录入每个学生的学号和考试成绩;
(2)计算课程的平均分;
(3)按成绩由高到低排出名次表;
(4)按学号查询学生排名及其考试成绩;
(5)按优秀(90~100)、不及格(0~59)2个类别,统计每个类别的人数及其所占的百分比;
要求:最多不超过40人(具体人数由键盘输入)参加某门课程的考试,用一维数组作函数参数编程

输入输出示例:

#include<stdio.h>     #define N 30         void main()    {        int x,a,b,c,d,sum=0,temp1,temp2;        double ave;        printf("请输入学生数量\n");        scanf("%d",&x);        int xh[N],cj[N];        printf("请输入学号,请输入成绩\n");        for(int i=0;i<x;i++)        {            scanf("%d,%d",&xh[i],&cj[i]);            sum=sum+cj[i];        }        ave=(double)sum/(double)x;        printf("平均成绩是%lf\n",ave);                     for(int i=0;i<x;i++)            {                printf("%d,%d\n",xh[x-i-1],cj[x-i-1]);            }                printf("成绩名次表\n");        for(int i=0;i<x;i++)            for(int j=0;j<x-i-1;j++)            {                if(cj[j]<cj[j+1])                {                    temp1=cj[j];                    cj[j]=cj[j+1];                    cj[j+1]=temp1;                    temp2=xh[j];                    xh[j]=xh[j+1];                    xh[j+1]=temp2;                }            }            for(int i=0;i<x;i++)            {                printf("%d,%d\n",xh[i],cj[i]);            }                                                printf("请输入想查询的学号\n");            scanf("%d",&a);            for(int i=0;i<x;i++)            {                if(xh[i]==a)                    printf("学号%d 名次%d 成绩%d\n",xh[i],i+1,cj[i]);            }                a=0,b=0;                        for(int i=0;i<x;i++)            {                if(cj[i]<=100&&cj[i]>=90)                    a++;                if(cj[i]<=59&&cj[i]>=0)                    b++;                        }                                    printf("优秀\t不及格\n");            printf("%d\t%d\n",a,b);            printf("%.2lf%%\t%.2lf%%",(double)(a*100/x),(double)(b*100/x));                            }



-----------------------分割线-----------------------

作业3:用指针(间接引用)求出两个数中的最大数

#include<stdio.h>void main(){int a,b;int *p1,*p2;printf("请输入两个数:");scanf("%d%d",&a,&b);p1=&a;p2=&b;if(a>b)printf("两者之间较大的是%d",*p1);elseprintf("两者之间较大的是%d",*p2);}

-----------------------分割线-----------------------

作业4:编写交换两个变量值的函数,并交换主函数中两个变量的值(不能使用全局变量传递数据).

#include<stdio.h>void main(){int a,b,*m,*n;printf("请输入两个数:");scanf("%d%d",&a,&b);m=&a;n=&b;int s;s=*m;*m=*n;*n=s;printf("%d %d",*m,*n);}

-----------------------分割线-----------------------
作业5:从键盘输入5个整数存入一维数组中,再按反序输出(要求用指针访问数组元素)

#include<stdio.h>#define N 5void main(){int i,a[N];printf("请输入五个整数:\n");for(i=0;i<5;i++){scanf("%d",&a[i]);}for(i=4;i>=0;i--){printf("%d",*(a+i));}
总之还需要继续努力,虽然看得懂,但要自己写出来真心需要多多练习,唉。。。

原创粉丝点击