指针实现字符串逆序,水仙花

本文通过两个经典示例介绍指针应用及数学问题解决方法。首先展示如何使用C语言指针技巧实现字符串逆序,接着提供一种有效算法找出0到10万间的水仙花数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

记录一些做过的题


提示:以下是本篇文章正文内容,下面案例可供参考

一、指针实现字符串逆序

/#include<stdio.h>

//#include<string.h>

//int main()

//{

// char arr[100] = { 0 };

// gets(arr);

// int len = strlen(arr);

// char* left = arr;数组名即为首元素地址

// char* right = arr + len - 1;

//

// while (left < right)交换首末元素

// {

// int num = 0;

// num = *left;

// *left = *right;

// *right = num;

// left++;

// right--;

// }

// printf("%s", arr);

// return 0;

//}

二、水仙花

1.求出0~100000之间的所有“水仙花数”并输出。

“水仙花数”是指一个n位数,其各位数字的n次方之和确好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”

代码如下(示例):

#include<stdio.h>

#include<math.h>

int main()

{

int i = 0;

for (i = 0; i < 100000; i++)

{

int count = 0;

int ret = i;

int sum = 0;

while (ret)
计算位数
{

count++;

ret = ret / 10;

}

ret = i;

while (ret)利用pow函数求一个数的n次幂

{

sum=sum+ pow((ret % 10), count);

ret = ret / 10;

}

if (i == sum)

{

printf("%d\n", sum);

}

}

return 0;

}


总结

以上题目给自己对指针的理解更进一步,水仙花题目更锻炼了自己的代码能力

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值