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.罗列本周一些错题


posted @ 2017-12-17 21:41  爻象  阅读(404)  评论(0编辑  收藏  举报