1、循环条件错误,应该是sum<500,而不是sum<=500,如果是sum<=500,输出的是第501项。
2、pow函数格式错误。对于a的pow函数,an是整型,不符合pow函数要求。1/2是整型运算,结果为0。两个参数都错了。同理,对于b的pow函数,两个参数也都是错的。
3、输出格式错误。
修改后的程序及修改说明:
#include
#include
int main(){
int sum = 0,an = 0;
double a = 0,b = 0;//改为double型
while(sum<500){ //改为sum<500
an++;
a = pow(double(an),1.0/2);//改为符合pow函数要求的形式
b = pow(double(an),1.0/3);//改为符合pow函数要求的形式
if(a != (int)a&&b != (int)b)
sum++;
}
printf("%d",an);//an前面的&去掉
return 0;
}