程序出错了 改过了 还是有问题
求1000000以内 将该数的首位数字移到末尾得到的数是原数的整数倍 比如142857 428571就是整数倍 #include<stdio.h>
#include<stdlib.h>
#include<math.h>
int Troitsky(long a[])
{
long i,j,temp1,temp2,temp3;
int n;
for(i=1,n=0;i<=1000000;i++)/*我把这里i改成1了 程序可以运行但没有结果 怎么回事?*/
{
for(j=0;i%((long)pow(10,j))!=i;j++);
temp1=i/(long)pow(10,j-1);
temp2=i%(long)pow(10,j-1)*10;
temp3=temp2+temp1;
if(temp3%i==0)
a[n++]=i;
}
return n;
}
void main()
{
long a[10];
int n,i;
FILE *fp;
n=Troitsky(a);
if((fp=fopen("myf2.out","w"))==NULL)
{
printf("cannot open the file\n");
exit(0);
}
for(i=0;i<n;i++)
{
fprintf(fp,"%10ld",a[i]);
printf("%10ld",a[i]);
}
printf("\n");
fprintf(fp,"\n");
fprintf(fp,"My exam number is : 1231231234\n");
fclose(fp);
}
[ 本帖最后由 njzhangyuhao 于 2011-3-30 20:19 编辑 ]