|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
#include<conio.h>
#include<math.h>
int inverse(int, int *, int *);
int main()
{
int n, num[3], count;
puts("输入一个整数");
scanf_s("%d", &n);
inverse(n, &num[0], &count);
if (3 == count)
if (pow(num[0], 3) + pow(num[1], 3) + pow(num[2], 3) == n)
printf("yes\n");
else printf("no\n");
else printf("%d不是三位整数", n);
_getch();
return 0;
}
int inverse(int n, int *p, int *l)
{
int m = 0, i = 0;
while (n >= 0)
{
m = m * 10 + n % 10;
*p = n % 10;//运行时提示写入访问冲突
n = n / 10;
p++, i++;
}
*l = i;
return m;
}
本帖最后由 jackz007 于 2019-3-23 13:16 编辑
- #include<stdio.h>
- #include<conio.h>
- #include<math.h>
- int inverse(int n , int * p , int * l)
- {
- int m = 0 , i = 0 ;
- while (n > 0) { // 原程序是 n >= 0,n == 0 还有必要循环吗?这是导致运行出错的直接原因。
- m = m * 10 + n % 10 ;
- * p = n % 10 ;
- n = n / 10 ;
- p ++ ;
- i ++ ;
- }
- * l = i ;
- return m ;
- }
- int main(void)
- {
- int i , n , num[3] , count , sum ;
- for(n = 100 ; n < 1000 ; n ++) {
- inverse(n , num , & count) ;
- for(sum = 0 , i = 0 ; i < count ; i ++) sum += num[i] * num[i] * num[i] ; // 整型数判断,不要轻易使用 pow() 会引入误差,耽误结果判断的正确性
- if(sum == n) printf("%d\n" , n) ;
- }
- }
复制代码
|
|