#include
int main()
{
int n,a,x,b,i,e,S,c;
printf("please input a suitable integer:");
scanf("%d",&n);
switch(n){
case 3:a=100,b=999;break;
case 4:a=1000,b=9999;break;
case 5:a=10000,b=99999;break;
case 6:a=100000,b=999999;break;
case 7:a=1000000,b=9999999;break;
default:printf("error\n");break;
}
for(S=0;x=a;x<=b;x++)
{
for(i=1;i
{ e=x/10%10;
S=S+eee;
}
c=x%10;
S=S+ccc;
if (S==x)
printf("%d\n",x);
}
return 0;
}
pta的回答:
a.c: In function ‘main’:
a.c:15:1: warning: suggest parentheses around assignment used as truth value [-Wparentheses]
for(S=0;x=a;x<=b;x++)
^~
a.c:15:14: warning: statement with no effect [-Wunused-value]
for(S=0;x=a;x<=b;x++)
^
a.c:15:17: error: expected ‘)’ before ‘;’ token
for(S=0;x=a;x<=b;x++)
^
主要是上面的?
a.c:6:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^~
for(S=0;x=a;x<=b;x++)改为
for(S=0,x=a;x<=b;x++) 第一个分号改为逗号
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
scanf("%d", &n);
long int a[10];
for(int i = 0; i < 10; i++)
{
a[i] = pow(i, n);
}
long int min = pow(10, n - 1);
long int max = pow(10, n);
for(long int i = min; i < max; i++)
{
long int sum = 0;
long int temp = i;
for(int j = 0; j < n; j++)
{
sum += a[temp % 10];
temp /= 10;
}
if(sum == i)
{
printf("%ld\n", i);
}
}
return 0;
}