2019春第九周作业

这个作业属于那个课程 C语言程序设计II
这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/MS/homework/3129
我在这个课程的目标是 学习使用结构解决问题
这个作业在哪个具体方面帮助我实现目标 了解结构的使用方法、格式以及注意事项
参考文献 C语言程序设计II第九章

一、本周完成作业

基础函数题

1.实验代码

#include <stdio.h>
#define MAXN 10

struct student{
    int num;
    char name[20];
    int score;
    char grade;
};

int set_grade( struct student *p, int n );

int main()
{   struct student stu[MAXN], *ptr;
    int n, i, count;

    ptr = stu;
    scanf("%d
", &n);
    for(i = 0; i < n; i++){
       scanf("%d%s%d", &stu[i].num, stu[i].name, &stu[i].score);
    } 
   count = set_grade(ptr, n);
   printf("The count for failed (<60): %d
", count);
   printf("The grades:
"); 
   for(i = 0; i < n; i++)
       printf("%d %s %c
", stu[i].num, stu[i].name, stu[i].grade);
    return 0;
}
int set_grade( struct student *p, int n )
{
int count=0,i;
for(i=0;i<n;i++)
{
if((*p).score<60)
{
(*p).grade='D';
count++;
}
else if((*p).score>=60&&(*p).score<=69)
(*p).grade='C';
else if((*p).score>=70&&(*p).score<=84)
(*p).grade='B';
else
(*p).grade='A';
        p++;
}
return count;
}
2.设计思路
3.本题调试过程碰到的问题及解决办法
*p需要用括号括起来,因为*p.score等同*(p.score),经过查资料自己检查后改正
错误截图
4.运行结果截图
基础编程题1
1.实验代码
#include<stdio.h>
struct student{
int sex;
char name[8];
}str[50],stu[50];
int main(void)
{
int n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&str[i].sex);
scanf("%s",&stu[i].name);
}
for(i=0;i<n;i++)
{
for(j=n-1;j>=0;j--)
{
if(str[i].sex!=str[j].sex&&str[i].sex<=1&&str[j].sex<=1)
{
str[i].sex=2;
str[j].sex=2;
printf("%s %s ",stu[i].name,stu[j].name);
}
}
}
return 0;
}
2.设计思路
3.本题调试过程碰到的问题及解决办法
没什么错误,主要就是做题思路比较难想到
4.运行结果截图
基础编程题2
1.实验代码
#include<stdio.h>
struct student{
char kaohao[20];
int shiji;
int kaoshi;
};
int main()
{
int N,M;
scanf("%d", &N);
struct student str[N];
for(int i = 0; i < N; i++){
scanf("%s %d %d", &str[i].kaohao, &str[i].shiji, &str[i].kaoshi);
}
scanf("%d", &M);
for(int j = 0; j < M; j++){
int m;
scanf("%d", &m);
for(int h = 0; h < N; h++){
if(m == str[h].shiji){
printf("%s %d ", str[h].kaohao, str[h].kaoshi);
}
}
}
return 0;
}
2.设计思路
3.本题调试过程碰到的问题及解决办法
定义学生考号时用long来定义出现了段错误,后来问同学之后改成了用char数组来定义
错误截图
4.运行结果截图
挑战作业太难不会
 
预习作业
什么是递归函数?
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。递归函数还有两个要素,结束条件与递推关系。出处:https://blog.csdn.net/wf19930209/article/details/79341939
它的优点和缺点有哪些?
优点:递归函数方便了程序员——用一段短小精悍的代码便描述了一个复杂的算法(处理过程)。
缺点:害苦了处理器和内存——处理器一遍遍地调用函数、内存一层层地建立函数栈帧,再一层层地退栈。这将是不小的系统开销。更为可怕的是递归可能造成栈溢出。
出处:https://bbs.csdn.net/topics/392416162?page=1
如何归纳出递归式?
三种方法   (一)代换法(二)递归树方法(三)主方法。详情及出处:https://blog.csdn.net/g1036583997/article/details/46912679
 
学习感悟
难则不通,通则不难,果然还是要自己去用心的好好研究研究,不管有什么问题都可以自己百度,还是要自己学会用百度啊,百度是个好东西,能解决不少问题,学习还是要一切靠自己。

结对编程的优缺点

优点:2个人可以在讨论中不知不觉的进步,毕竟合作的力量还是要比自己一个人强,编程搭档相当于半个老师,可以取长补短

缺点:有时候还是需要自己一个人独立思考来解决问题,不能什么都问搭档,自己的错误自己解决出来印象会更深刻

原文地址:https://www.cnblogs.com/lyp82ndl/p/10775879.html