这个作业属于哪个课程 | C语言程序设计二 |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/zswxy/software-engineering-class2-2018/homework/3074 |
我的课程目标 | 在编程过程中能熟练掌握指针的使用方法 |
这个作业在哪个具体方面帮助我实现目标 | 本次作业需要熟练使用指针来进行一些数据的处理 |
参考文献 | c语言程序设计 |
函数实现字符串逆序
1)实验代码
void f( char *p )
{
int i=0,j=0,mid;
char op;
while(*(p+i)!=' '){
i++;
}
if(i%2==0){
mid=i/2;
while(j<mid){
op=*(p+j);*(p+j)=*(p+i-1);*(p+i-1)=op;
j++;i--;
}
}
else{
mid=(i+1)/2;
while(j<mid){
op=*(p+j);*(p+j)=*(p+i-1);*(p+i-1)=op;
j++;i--;
}
}
}
2)设计思路
3)调试过程中遇到的问题及解决方法
无
3)实验结果截图
字符串的连接
1)实验代码
char *str_cat( char *s, char *t )
{
int i=0,j=0;
while(*(s+i)!=' ')
i++;
while(*(t+j)!=' '){
*(s+i)=*(t+j);
i++;j++;
}
return s;
}
2)设计思路
3)调试过程中遇到的问题及解决方法
无
4)实验结果截图
输出学生成绩
1)实验代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,*p;
double max,min,sum,n;
scanf("%lf",&n);
if((p=(int *)malloc(n*sizeof(int)) )==NULL){
printf("Not able to allocate memory.
");
exit(1);
}
for(i=0;i<n;i++)
scanf("%d",p+i);
sum=*p;
max=*p;
min=*p;
for(i=1;i<n;i++){
if(*(p+i)>max)
max=*(p+i);
else if(*(p+i)<min)
min=*(p+i);
sum=sum+*(p+i);
}
printf("average = %.2f
",sum/n);
printf("max = %.2f
",max);
printf("min = %.2f
",min);
free(p);
return 0;
}
2)设计思路
3)调试过程中遇到的问题及解决方法
在完成的过程中,因为对有关动态内存分配的函数使用还是很模糊,所以出现了一些小问题
4)实验结果截图
字符串排序
1)实验代码
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,x;
char op[80],a[5][80];
for(i=0;i<5;i++)
scanf("%s",a[i]);
for(i=0;i<5;i++)
for(j=i+1;j<5;j++){
if(a[j][0]<a[i][0]){
strcpy(op,a[i]);
strcpy(a[i],a[j]);
strcpy(a[j],op);
}
}
printf("After sorted:
");
for(i=0;i<5;i++)
printf("%s
",a[i]);
return 0;
}
2)设计思路
3)调试过程中遇到的问题及解决方法
无
3)实验结果截图
周/日期 | 这周所花时间 | 代码行数 | 学到的知识点 | 目前比较迷惑的问题 |
---|---|---|---|---|
3月4-3月10 | 4天 | 130行 | 如何读取文件中的数据并写入数据 | |
3/11-3/17 | 2天 | 66行 | 一些有关文件的函数 | |
3/18-3/24 | 2天 | 103行 | 二维数组的定义与使用 | |
3/25-3/31 | 2天 | 140行 | 与字符串有关的函数strlen,strcpy | 一些与字符串有关的函数使用方法 |
4/1-4/7 | 2天 | 56行 | 指针函数的定义与使用 | |
4/8-4/14 | 2天 | 69行 | gets,puts,strcat,strcmp函数 | |
4/13-4/19 | 2天 | 89行 | 地址结构内存的动态分配 |
学习折线图
学习感悟
现在对每周的作业感到力不从心了,最开始学的基础知识有点忘了,以后要多看看书,复习一下以前的知识。