2022-2023-1 20221408《计算机基础与程序设计》第十三周学习总结
第十三周学习总结
作业信息
- 这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP
- 这个作业的要求在哪里:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13
- 这个作业的目标:总结本周学习内容
- 作业正文:https://www.cnblogs.com/liudi20221408/p/16919793.html
教材学习内容总结
C语言程序设计
- 结构体由struct和其后的结构体名组成
- 结构体的名字称为结构体标签
- 结构体应进行初始化
- 当结构体中出现另一个结构体时成为结构体的嵌套
- 不能直接使用结构体的成员变量名访问结构体变量的成员
- 结构内可以包含多种数据类型
- 指针做函数参数实现数组中值的调换
- 整数指针做参数
- 函数:
-
temp=*x; *x=*y; *y=temp;
-
主函数:
-
for(i=0;i<n;i++) { swap(&a[i],&b[i]); }
- 字符指针做函数参数
-
void Swap(char *pa, char *pb) { char temp; temp = *pa; *pa = *pb; *pb = temp; }
-
- 整数指针做参数
代码运行中遇到的问题及解决方法
- 问题一:同样的代码在code::blocks中能够正常运行,而在哈工大系统中运行出来的结果却是随机数
- 问题一解决过程:在网上查找资料,发现是因为编译器不同导致了不同的结果,我找到的例子是因为越界访问,目前不知道我的问题出现在哪里,以下是我的源代码
1 #include<stdio.h> 2 #include<stdlib.h> 3 int DayofYear(int year, int month, int day); 4 void MonthDay(int year, int yearDay, int *pMonth, int *pDay); 5 int main() 6 { 7 int choose,month,year,day,yearDay,pMonth,pDay; 8 printf("1. year/month/day -> yearDay\n2. yearDay -> year/month/day\n3. Exit\nPlease enter your choice:"); 9 scanf("%d",&choose); 10 switch(choose) 11 { 12 case 1: 13 printf("Please enter year, month, day:"); 14 scanf("%d,%d,%d",&year,&month,&day); 15 yearDay=DayofYear(year,month,day); 16 printf("yearDay = %d",yearDay); 17 break; 18 case 2: 19 printf("Please enter year, yearDay:"); 20 scanf("%d,%d",&year,&yearDay); 21 MonthDay(year,yearDay,&pMonth,&pDay); 22 printf("month = %d, day = %d\n",pMonth,pDay); 23 break; 24 case 3: 25 exit(0); 26 } 27 } 28 int DayofYear(int year, int month, int day) 29 { 30 int i,j,yearDay; 31 int monthday[2][12]= {{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}}; 32 if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) 33 { 34 i=0; 35 } 36 else 37 { 38 i=1; 39 } 40 for(j=0; j<(month-1); j++) 41 { 42 yearDay+=monthday[i][j]; 43 } 44 yearDay+=day; 45 return yearDay; 46 } 47 void MonthDay(int year, int yearDay, int *pMonth, int *pDay) 48 { 49 int i,j; 50 int monthday[2][12]={{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}}; 51 if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)) 52 { 53 i=0; 54 } 55 else 56 { 57 i=1; 58 } 59 for(j=0;j<12;j++) 60 { 61 yearDay-=monthday[i][j]; 62 if(yearDay<0) 63 break; 64 } 65 *pMonth=j+1; 66 *pDay=yearDay+monthday[i][j]; 67 }
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | |
第一周 | 150/150 | 2/2 | 17/17 |
第二周 | 100/250 | 1/3 | 15/32 |
第三周 | 200/450 | 2/5 | 16/48 |
第四周 | 230/680 | 2/7 | 17/65 |
第五周 | 200/880 | 2/9 | 20/85 |
第六周 | 350/1230 | 5/14 | 14/99 |
第七周 | 470/1700 | 1/15 | 15/114 |
第八周 | 530/2230 | 2/17 | 14/128 |
第九周 | 480/2710 | 1/18 | 14/142 |
第十周 | 570/3280 | 1/19 | 13/155 |
第十一周 | 670/3950 | 1/20 | 15/170 |
第十二周 | 580/4530 | 1/21 | 16/186 |
第十三周 | 710/5240 | 1/21 | 13/199 |