C博客作业--指针
一、PTA实验作业
题目1:两个4位正整数的后两位互换
1. 本题PTA提交列表
2. 设计思路
定义函数void fun(int *p,int *q)
定义整形变量x,y用于储存输入的数的后两位
x=*p%100,y=*p%100
将*p,*q后两位数互换
*p=*p-x+y;
*q=*q-y+x;
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题主要遇到的问题就是对指针的运用不熟练而导致赋值错误,还有就是提交的时候将主函数代码也贴了上去,导致的编译错误。
题目2:求出数组中最大数和次最大数
1. 本题PTA提交列表
2. 设计思路
定义一个整型函数int fun ( int *a, int n )
定义整型变量max用来储存没次找出的最大的数,i为循环数,temp用来存放要替换掉的数
令max=*a
for(i=0;i<n;i++)
遍历数组 找出数组中的最大的数
然后j储存最大数的数组下标
temp=*a;
*a=max;
*(a+j)=temp;
max=*(a+1)
替换
for(i=1;i<n;i++)
再次从第二个数遍历数组,再次找到最大的数,并与第二个数替换
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题主要问题是由于没有控制好第二次循环数的开始地址,所以导致错误,通过调试解决。
题目3:判断回文字符串
1. 本题PTA提交列表
2. 设计思路
3.代码截图
4.本题调试过程碰到问题及PTA提交列表情况说明
本题的错误主要是函数判断过程中,没有想到对于长度为一的字符串怎么判断 以及对于返回值没有准确把握而导致的答案错误
二、截图本周题目集的PTA最后排名。
三、阅读代码
代码:
功能:用正弦定理,只知道两边及一角,求三角形面积
代码:
main()
{
int i,j,k;
printf("\n");
for(i=1;i<5;i++)
for(j=1;j<5;j++)
for (k=1;k<5;k++)
{
if (i!=k&&i!=j&&j!=k)
printf("%d,%d,%d\n",i,j,k);
}
}
功能:
统计由1,2,3,4组成互不相同且无重复数字的三位数的个数,并分别输出。
四、本周学习总结
1.自己总结本周学习内容
学习了c语言中结构的定义、嵌套、赋值、引用以及如何初始化一个结构体
例:
char name[8];
char sex[2];
int age;
char addr[40];
}student[40];
也可定义为:
struct string{
char name[8];
char sex[2];
int age;
char addr[40];
};
struct string student[40];
2.罗列本周一些错题