第十二次课后作业

来源:互联网 发布:淘宝宝贝模板编辑软件 编辑:程序博客网 时间:2024/04/29 22:20

 

作业1:
通过输入两个加数,给学生出一道加法运算题。如果输入答案正确,则显示“Y”;否则显示“N”。
要求:程序循环执行n次,用函数实现判断对错和输出结果
输入输出示例:(括号内部分是对输入输出的解释,不要出现在程序中)

我的程序:

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

运行效果:


 

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

#include<stdio.h>

#define NUM 40

void bubbleSort(int grade[],int stn[],int n)

{

int i,j,t,k;

for(i=0;i<n-1;i++)

{

for(j=0;j<n-i-1;j++)

{

if(grade[j+1]>grade[j])

{

t=grade[j+1],k=stn[j+1];

grade[j+1]=grade[j],stn[j+1]=stn[j];

grade[j]=t,stn[j]=k;

}

}

}

 

}

void print(int grade[],int stn[],int n)

{

int i=0;

for(i<n;i++)

{

printf("%d, %d\n",stn[i],grade[i]);

}

}

void main()

{

printf("请输入学生数量\n");

int n,i,sum=0;int a,b,c=1;

scanf_s("%d",&n);

printf("请输入学号和分数\n");

int grade[NUM];int stn[NUM];

for( i=0;i<n;i++)

scanf_s("%d,%d",&stn[i],&grade[i]);

for( i=0;i<n;i++)

sum=sum+grade[i];

printf("平均分是:%d\n",sum/n);

bubbleSort( grade,stn, n);

printf("成绩名次表\n");

print( grade,stn, n) ;

printf("请输入您想查询学生学号\n");

scanf_s("%d",&a);

for( i=0;i<n;i++){

if(a==stn[i]) b=grade[i];

else continue;}

for( i=0;i<n;i++)

if(b<grade[i]) c++;

printf("学号 %d ,名次 %d,其考试成绩%d\n",a,c,b);

int d=0;int e=0;

for( i=0;i<n;i++)

if(grade[i]>=90) d++;

if(grade[i]<60) e++;

printf("优秀 不及格\n");

printf("%d %d\n",d,e);

printf("%.2f% %.2f%\n",float(d)/float(n)*100,float(e)/float(n)*100);

}

运行效果:

 

 

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

我的程序:

#include<stdio.h>  
void main() 
{  printf("请输入两数\n");
 int a,b; 
    scanf_s("%d,%d",&a,&b); 
    int *m,*n; 
    m=&a;n=&b; 
    if(a>=b)   printf("较大值为%d\n",*m); 
    else          printf("较大值为%d\n",*n); 

 运行效果:


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

我的程序:

#include<stdio.h>
int f(int *m,int *n)
{
 int a;
 a=*m;
 *m=*n;
 *n=a;
 return 0;
}
void main()
{
   int b=1,c=2;
   printf("a=%d  b=%d\n",b,c);
   f(&b,&c);
   printf("a=%d  b=%d\n",b,c);
}
运行效果:


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

我的程序:

#include<stdio.h>
void main()
{
 int i,a[5];
 printf("请输入5个数\n");
 for(i=0;i<5;i++)
 {
  scanf("%d",&a[i]);
 }
 for(i=4;i>=0;i--)
 {
  printf("%d ",a[i]);
 }
}

运行效果: