码迷,mamicode.com
首页 > 其他好文 > 详细

C博客作业--指针

时间:2017-12-16 23:13:34      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:变量   回文   pre   中间   利用   整数   回文字符串   es2017   enum   

---恢复内容开始---

一、PTA实验作业

题目1: 两个4位正整数的后两位互换

1. 本题PTA提交列表

技术分享图片

2. 设计思路

定义变量mn分别表示表示四位数的后两位。
m=*p求余100
n=*q求余100
*p=(*p除以100)*100加上n;
*q=(*q除以100)*100加上m;

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明。

做本题时候一开始对指针的定义不是很理解,别看这题很简单,但是却需要对指针的定义了解透彻,
即,在函数中可以利用指针次从而改变指针中所表示的量。

题目2: 判断回文字符串

1. 本题PTA提交列表

技术分享图片

2. 设计思路

![](http://images2017.cnblogs.com/blog/1233828/201712/1233828-20171216145136093-1369224825.png)

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明。

技术分享图片

第一次大题上的思路是没有错的,就是利用两端向中间靠拢,一次对比两个字符是否相等。
然而上面这个错误的原因是在在找最后一个点时p要-1,
技术分享图片

可是在我改变了最后一个端点后仍然还是有一个小错误,不能够解决。后来干脆直接用一个
p=(strlen(s)-1)就解决了,我也不知道为什么

题目3: 使用函数实现字符串部分复制

1. 本题PTA提交列表

技术分享图片

2. 设计思路

技术分享图片

3.代码截图

技术分享图片

4.本题调试过程碰到问题及PTA提交列表情况说明。

技术分享图片

起先对主函数中的ReadString( char s[] ); 这个函数不清楚不知道他是否有输入t的这一个步骤
所以一开始没有gets(t)着一步,
然后在增加了一步输入和return true 和 return flase 就可以了

二、截图本周题目集的PTA最后排名

技术分享图片

三、三、阅读代码

#include<stdio.h>
void spacenum(char *a,int *n)
{
    int i;
    *n=0;                 
    for(i=0;*(a+i);i++)   
       if(*(a+i)==’ ’))
          (*n)++;                      
}
int main( )
{
    char str[100];
    int count;
    gets(str);                 
    spacenum(str,&count);          
    printf(“space=%d\n”,count);
    return 0;
}

这道题的用处是用来统计字符串中空格的个数,优点是:充分利用了指针的灵活性,很好用,而且非常的简洁明了,

```

include 

include 

define  M  20

void  fun ( int a[ ], int x, int n)
{
int i,j;
for(i=0;i<
n;i++)
   if(a[i]==x) 
       break;
   for(j=i;j<n-1;j++)
   a[j]=a[j+1];
   
n=*n-1;
}

int main( )
{
   int k, m, x, a[M];
  
   printf( "\nPlease enter a number: " ); 
   scanf( "%d", &m );
   printf( "\nPlease enter %d numbers(from small to large): ", m );
   for( k = 0; k < m; k++ )  
      scanf( "%d", &a[k] );
   printf ("\nEnter x :  "); 
   scanf ( "%d", &x );
   fun (a, x, &m );
   printf( "\nAfter deleter:\n" );
   for( k = 0; k < m; k++ ) 
       printf( " %d,", a[k] );
   printf("\n");
   
}
从a中删除第一个遭到与x值相同的数组元素,删除后a的数组仍然由小到大有序排列
优点:这道题的删除函数做的十分巧妙,函数那里先判断a数组中是否有与x相等的数,有的话跳出循环重构数组。

四、本周学习总结(1分)

1.自己总结本周学习内容。

  • (1)指针的定义 方式 类型名 *指针变量名
    指针的变量名必须是一个合法标识符
    指针之间只能进行减法运算,而不能进行加乘除运算,
    减法运算是指数组所指的地址的差值
    在函数的运算中,可以通过改变地址中的值来影响实参的改变

    2.罗列本周一些错题。

    技术分享图片

在判断 if(x>a[i])后就退出循环break。

C博客作业--指针

标签:变量   回文   pre   中间   利用   整数   回文字符串   es2017   enum   

原文地址:http://www.cnblogs.com/1028-zwj/p/8047288.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!