1. /*-------------------------------------------------------
    2. 【程序设计】
    3. ---------------------------------------------------------
    4. 题目:求出1000以内前20个不能被2,3,5,7整除的数之和。
    5. 要求:使用程序中定义的变量
    6. -------------------------------------------------------*/
    7. #include"stdio.h"
    8. void wwjt();
    9. //fun函数功能:求出求出1000以内,前n个不能被2,3,5,7整除的数,求出这些数的和
    10. int fun(int n)
    11. {
    12. int i,j=0,a[20],sum=0; //前20个不能被2,3,5,7整除的数保存在a数组中,它们的和保存在sum中。
    13. /**********Program**********/
    14. for(i=0;i<1000;i++){
    15. if( ( i&2 != 0 ) && ( i%3 != 0 ) && ( i%5 != 0 ) && ( i%7 != 0 ) )
    16. {
    17. a[j++]=i;
    18. //printf("%d,",i);
    19. }
    20. if(j>n-1) break;
    21. }
    22. for(i=0;i<n;i++)
    23. sum+=a[i];
    24. /********** End **********/
    25. return sum;
    26. }
    27. void main()
    28. {
    29. printf("和为:%d\n",fun(20));
    30. wwjt();
    31. }
    32. void wwjt()
    33. {
    34. FILE *IN,*OUT;
    35. int i,n;
    36. IN=fopen("in.dat","r");
    37. if(IN==NULL)
    38. {
    39. printf("Please Verify The Current Dir..It May Be Changed");
    40. }
    41. OUT=fopen("out.dat","w");
    42. if(OUT==NULL)
    43. {
    44. printf("Please Verify The Current Dir.. It May Be Changed");
    45. }
    46. for(i=0;i<5;i++)
    47. {
    48. fscanf(IN,"%i",&n);
    49. fprintf(OUT,"%ld\n",fun(n));
    50. }
    51. fclose(IN);
    52. fclose(OUT);
    53. }