pta简单实现x的n次方_C高级第一次PTA作业

本文介绍了在PTA平台上完成的几个C语言编程题目,包括证明P++等价性的概念,以及计算两数和差、拆分实数、查找数组元素、找最大值及其下标、数组最小数与最大数对调和回文字符串判断等算法的实现。通过实验代码和流程图详细解释了解题思路和过程。
摘要由CSDN通过智能技术生成

#作业要求一

##附加题目 写程序证明P++等价于(p)++还是等价于*(p++)? ###1.设计思路: (1).题目算法描述 第一步:定义变量p并赋初值 第二步:分三次计算每次分别输出 p++,(p)++,*(p++) (2).流程图 这是初次尝试的错误流程图 错误原因:①流程图不能是多个程序的,一个程序一个流程图②另外流程图也不会出现三个框并列执行的情况

修改后的流程图

###2.实验代码 (1)

#include

int main ()

{

int p=1;

//printf("%d",p++);

//printf("%d",(p)++);

//printf("%d",*(p++));

return 0;

}

(2)

#include

int main ()

{

int a=1;

int *p = &a;

//printf("%d",p++);

//printf("%d",(p)++);

//printf("%d",*(p++));

return 0;

}

###结论: 当p为int类型时p++与(p)++运算结果相同但是*(p++)计算报错,错误信息如下 错误原因:*无效 ,没有定义指针变量 间接访问运算符无法正常使用 当p为指针类型时,可以确定p++与(p)++结果相同 ###说明:

第一部分:

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

本题要求实现一个计算输入的两数的和与差的简单函数。 ###函数接口定义: void sum_diff( float op1, float op2, float *psum, float *pdiff ); 其中op1和op2是输入的两个实数,*psum和*pdiff是计算得出的和与差。 ###裁判测试程序样例:

#include

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.设计思路: (1).题目算法描述 根据题目中已经给出的代码部分可以看出,题目是想利用指针变量写一个计算和差的函数 第一步:构建函数框架 第二步:利用间接访问运算符操作计算变量的和与差 (2).流程图

###2.实验代码

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

{

*psum = op1 +op2;

*pdiff = op1-op2;

}

###答案正确

##6-2 拆分实数的整数与小数部分(15 分)

本题要求实现一个拆分实数的整数与小数部分的简单函数。 ###函数接口定义:

void splitfloat( float x, int *intpart, float *fracpart );

其中x是被拆分的实数(0≤x<10000),*intpart和*fracpart分别是将实数x拆分出来的整数部分与小数部分。 ###裁判测试程序样例:

#include

void splitfloat( float x, int *intpart, float *fracpart );

int main()

{

float x, fracpart;

int intpart;

scanf("%f", &x);

splitfloat(x, &intpart, &fracpart);

printf("The integer part is %d\n", intpart);

printf("The fractional part is %g\n", fracpart);

return 0;

}

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

###输入样例:

2.718

###输出样例:

The integer part is 2

The fractional part is 0.718

###1.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值