在这里,我不仅尝试找出任何数字的多维数据集,而且我想找出输入的数字是乘以其数字的计数。 例如:-100乘以100的三倍。
每当我输入3位以上的数字时 意外输出为负数。
#include<stdio.h>
#include<conio.h>
int cube(int);
void main()
{
int n,ans;
printf("enter a number : ");
scanf("%d" , &n);
ans=cube(n);
printf("%d" , ans);
}
int cube(int num)
{
int count,temp,i,add=1;
temp=num;
while(temp>0)
{
temp=temp/10;
count++;
}
printf("%d\n" , count);
for(i=1;i<=count;i++)
{
add=add*num;
}
return add;
}
例如:-
输入数字:1000
4
-727379968
但是同时我输入的号码是10101
输入数字:10101
5
1343051877
我正在得到这个输出。
答案 0 :(得分:0)
您正在溢出,因为1000 ^ 4是1000000000000,它肯定高于 string(384) "Array
(
[access_token] => #token_is_here
[token_type] => bearer
[expires_in] => 3600
[refresh_token] => #refresh_token_is_here
[uid] => 7
[info] => Array
(
[name] => #name_is_here
[code] => #some_code
[email] => #some_mail_address
)
[policy] => Array
(
[write_hours] => 1
)
)
"
(在我的系统上为2147483647)的值。您应该使用适当的数据类型,例如INT_MAX
或检查是否存在如下溢出:
long