PTA指针实验

6-1 计算两数的和与差(10 分)

本题要求实现一个计算输入的两数的和与差的简单函数。

函数接口定义:

void sum_diff( float op1, float op2, float *psum, float *pdiff );

其中op1op2是输入的两个实数,*psum*pdiff是计算得出的和与差。

裁判测试程序样例:

#include <stdio.h>

void sum_diff( float op1, float op2, float *psum, float *pdiff );

int main()
{
    float a, b, sum, diff;

    scanf("%f %f", &a, &b);
    sum_diff(a, b, &sum, &diff);
    printf("The sum is %.2f\nThe diff is %.2f\n", sum, diff);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

4 6

输出样例:

The sum is 10.00
The diff is -2.00

1.本题PTA提交列表

2.设计思路(包括流程图),主要描述题目算法

本题很简单,只用写函数的代码,让两个数两加或者想减的结果等于指针就可以了

最终需要加入的代码是

void sum_diff( float op1, float op2, float *psum, float *pdiff )

{ *psum=op1+op2;*pdiff=op1-op2;}

运行的结果是

6-5 利用指针找最大值(10 分)

本题要求实现一个简单函数,找出两个数中的最大值。

函数接口定义:

void findmax( int *px, int *py, int *pmax );

其中pxpx是用户传入的两个整数的指针。函数findmax应找出两个指针所指向的整数中的最大值,存放在pmax指向的位置。

裁判测试程序样例:

#include <stdio.h>

void findmax( int *px, int *py, int *pmax );

int main()
{
    int max, x, y; 

    scanf("%d %d", &x, &y);
    findmax( &x, &y, &max );
    printf("%d\n", max);

    return 0;
} 

/* 你的代码将被嵌在这里 */

输入样例:

3 5

输出样例:

5

1.本题PTA提交列表

2.设计思路(包括流程图),主要描述题目算法

在函数中用if语句比较两个数的大小给pamx指针

最后的子函数代码为

void findmax( int *px, int *py, int *pmax )
{
if(px>py)
{
pmax=px;}
else
{
pmax=py; }
}

执行的结果如下

发现少了指针的那个符号没有指向指针所指的值

修改后得到

void findmax( int *px, int *py, int *pmax )
{
if(*px>*py)
{
*pmax=*px;}
else
{
*pmax=*py; }
}

运行的结果如下

6-6 使用函数实现字符串部分复制(20 分)

本题要求编写函数,将输入字符串t中从第m个字符开始的全部字符复制到字符串s中。

函数接口定义:

void strmcpy( char *t, int m, char *s );

函数strmcpy将输入字符串char *t中从第m个字符开始的全部字符复制到字符串char *s中。若m超过输入字符串的长度,则结果字符串应为空串。

裁判测试程序样例:

#include <stdio.h>
#define MAXN 20

void strmcpy( char *t, int m, char *s );
void ReadString( char s[] ); /* 由裁判实现,略去不表 */

int main()
{
    char t[MAXN], s[MAXN];
    int m;

    scanf("%d\n", &m);
    ReadString(t);
    strmcpy( t, m, s );
    printf("%s\n", s);

    return 0;
}

/* 你的代码将被嵌在这里 */

输入样例:

7
happy new year

输出样例:

new year

1.本题PTA提交列表

2.设计思路(包括流程图),主要描述题目算法

先把t的字符串全部复制到s中去,然后确定s的长度

然后通过循环一个一个将后面的字符往前移动,直到移动到m个字符处。

最终代码如下

void strmcpy( char *t, int m, char *s ){
int i,len;

strcpy(s, t);
len = strlen(s);
for(i=len-m-1;i>0;i--){
*(s+i-1)=*(s+i);
}
*(s+len-m+1)=‘\0‘;
}

发现想要通过一重循环不好实现

所以不正确

修改后的代码是

void strmcpy( char *t, int m, char *s ){
int i,j,len;

strcpy(s, t);
len = strlen(s);
for(i=m-1;i>0;i--){
for(j=i;j<len;j++){
*(s+j-1)=*(s+j);
}
}
*(s+len-m+1)=‘\0‘;
}

原文地址:https://www.cnblogs.com/ljl0925/p/8319848.html

时间: 2024-08-30 13:13:19

PTA指针实验的相关文章

四 PTA指针实验

#一.PTA指针实验作业. ##题目1: ##1. 本题PTA提交列表: ##2. 设计思路: 1,创建三个数组a[100], b[100], c[100],初始化,用作容器: 2,把传递过来的数组s[]的前三个数据放进a[]里,把剩下的数据放入b[]里面, 3,最后把数组b和数组a依次赋值给数组s,最后返回子函数. 流程图: 主要描述题目算法: void Shift(char s[]) { int i, t, d = 0, e; char a[100], b[100], c[100]; mem

四、PTA指针实验报告

四.PTA实验作业(指针) 题目一:   1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 1.由于这道题不知道具体要输入数据,所以采用calloc来按要求进行分配内存 2用for()循环来输入数据,斌且进行数据的求和,在内层循环中再通过一一比较,就可以求出数据的最大最小值 3.最后释放不用的内存 4.输出平均值,最大值,最小值 最终的代码如下: 流程图如下: 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试

三 PTA 数组实验

#一.PTA数组实验作业. ##题目1: ##1. 本题PTA提交列表: ##2. 设计思路: 1,先输入数组个数,再输入数组的值. 2,让第一个赋值给一个变量,然后再把最后一个赋值给第一个,最后再把变量的值赋给最后一个. 3,循环n/2次,得到新的数组排列,输出. 流程图: 主要描述题目算法: ##3.本题调试过程碰到问题及PTA提交列表情况说明. ##题目2: ##1. 本题PTA提交列表: ##2. 设计思路: 1,输入数组个数 ,数组,要找的值. 2.从第一个数组与要找的值进行比较,直到

第八章 指针实验

C程序设计实验报告 实验项目:指针实验 姓名: 王雨晴 实验地点: 514物联网实验室 实验时间:2019年6月12日 实验项目 指针基础及指针运算 数据交换 字符串反转及字符串连接 数组元素奇偶排列 一.实验目的和要求 (1)掌握指针的概念和定义方法. (2)掌握指针的操作和运算 (3)掌握指针与数组的关系 (4)掌握指针与字符串的关系 (5)熟悉指针作为函数的参数以及返回指针函数 (6)了解函数指针 二.实验内容 实验练习一 8.3.1指针基础及指针运算 1.问题描述 定义一个整型指针变量p

第八章指针实验

第八次实验报告 实验项目:指针实验 姓名:廖云福 实验地点: 514物联网实验室 实验时间:2019年6月12日 实验项目 指针基础及指针运算 数据交换 字符串反转及字符串连接 数组元素奇偶排列 一.实验目的和要求 (1)掌握指针的概念和定义方法. (2)掌握指针的操作和运算 (3)掌握指针与数组的关系 (4)掌握指针与字符串的关系 (5)熟悉指针作为函数的参数以及返回指针函数 (6)了解函数指针 二.实验内容 实验一. 8.3.1指针基础及指针运算 1.问题描述 定义一个整型指针变量p,使'y

指针实验

实验项目:指针实验 姓名:黄澄? ? 实验地点:514教室? ?实验时间:2019.6.13 一.目的和要求 1.掌握指针的概念和定义方法 2.掌握指针的操作符和指针的运算 3.掌握指针与数组的关系 4.掌握指针与字符串的关系 5.熟悉指针作为函数的参数以及返回指针的函数 6.了解函数指针 二.实验内容 实验练习8.3.11 问题的简单描述: (1)定义一个整型指针变量p,使它指向一个整型变量a,定义一个浮点型指针q,使它指向一个浮点型变量b,同时定义另外一个整型变量c并赋初值3(2)使用指针变

三、PTA数组实验报告

三.PTA实验作业(数组) 题目一:   1.本题PTA提交列表: 2 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 1.先定义一个数组用for()循环用于输入数据 2.再用一个for()循环,用于置换数组中个值得位置(用第一个和最后一个的位置交换,第二个和倒数最后一个交换...) 3.最后再用一个for循环输出就可以 最终代码如下: 流程图如下: 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中

二.PTA函数实验

一.PTA实验作业(函数) 题目一:   1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 //设计思路,由题目可知 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的列表中的每一个错误详细说明为什么及如何解决) 题目二: 1.本题PTA提交列表: 2.设计思路(包括流程图),主要描述题目算法 3.本题调试过程碰到的问题及PTA提交的情况说明(**注意:调试过程必须截图说明如何调试,如何解决问题,PTA提交的

一、PTA循环实验

一.PTA实验作业 题目一 1. 本题PTA提交列表: 2. 设计思路(包括流程图) 1.先构造出分子分母规律函数: 2.写主函数进行循环相加. 流程图的设计: 主要描述题目算法: 3.本题调试过程碰到问题. 发现问题:对于交变的正负号,本来想再定义一个符号函数,在网上找例子模仿. 解决办法:在网上找到了((float)crisscross(i))代替符号函数. 题目二: 1. 本题PTA提交列表: 2. 设计思路(包括流程图) 1.先编程两个输入函数,按照题目要求. 2.在循环判断并且"记录&