以下是引用ericxu1116在2006-4-9 11:09:00的发言:
题目是:找出1000以内的所有完数,并且按照以下格式输出其因子:6 irts factors are 1,2,3
#include <stdio.h>
const int M=1000;
int main()
{
int s=0,a;
int k[11];
int n=0,i;
for(a=2;a<=M;a++)
{
  for(i=1;i<=a;i++)
  {
   if(a%i==0)
   {
    n++;
    s=s+i;
    k[n]=i;
   }
  }
  if(s==a)
  {
  printf("%d its factors are",a);
   for(i=1;i<n;i++)
     printf("%d,",k[i]);
     printf("\n");
  }
s=0;
   return 0;
}
}
我编了这个程序但是运行是出现的是一串乱码,怎么回事啊?
不好意思,俺只看出了这点,但还是运行不了,俺也不知道是怎么回事.不过这里有我以前写的一个差不多的例子,
稍微改改应该就行了
#include<stdio.h>
main()
{
 char ch;
 long int num;
 long int i;
 while (1)
 {
  printf("Please input a number:\n");
  scanf("%ld",&num);
  printf("%ld=",num);
  for(i=2;i<=num;i++)
   {
      if(num%i==0)
       {
         if(num==i)
           printf("%ld",i);
         else
          {
            printf("%ld*",i);
            num=num/i;
            i=1;
          }
       }
       else continue;
   }
   printf("\nWould you like to run the program again?y/n\n");
   ch=getch();
   if(ch!='y')
   exit(0);
  }
}