作业1—2018.07.14

1、统计1~n9的个数:

#include<stdio.h>

int main()

{

int n, i, s, count=0;

    printf("请输入一个整数:\n");

scanf("%d",&n);

for(i=1;i<=n;i++)

{

s=i;

   while(s!=0)

{

if(s%10==9)

{

count++;

}

s=s/10;

}

}

printf("1~n9的个数为: %d",count);

while(1);

return 0;

}

2、n个人围成一圈,顺序排号,从第一个开始报数(从1~3),凡报到3的人退出圈子,问最后留下的是原来第几号那位。

#include<stdio.h>

int main()

{

    int i, n, a[1000];

    static int s=0, count=0;

printf("请输入总人数:\n");

scanf("%d",&n);

    for(i=0;i<=n;)

{

   a[i-1]=++i;

}

while(s!=n-1)

{

for(i=0;i<n;i++)

{

    if((a[i]!=0)&&(s!=n-1))

{

     count++;

         if(count%3==0)

   {

     a[i]=0;

s++;

   }

}

}

}

   for(i=0;i<n;i++)

{

   if(a[i]!=0)

   printf("最后留下的是第%d\n",a[i]);

}

while(1);

return 0;

}

3、输入五个数(含负数、小数)将他们按从小到大的顺序排列起来

#include<stdio.h>

#define SIZE 5

void GetNum(float s[])

{

    int i;

printf("请输入需要排列的数字:\n");

for(i=0;i<SIZE;i++)

{

   scanf("%f",&s[i]);

}

}

void sort(float s[])

{

int i, j;

float t;

for(j=0;j<SIZE-1;j++)

{

   for(i=0;i<SIZE-j-1;i++)

   {

   if(s[i]>s[i+1])

   {

   t=s[i];

   s[i]=s[i+1];

   s[i+1]=t;

   }

   }

}

}

void print(float s[])

{

    int i;

printf("排列后的数字\n:");

for(i=0;i<SIZE;i++)

{

   printf("%f ",s[i]);

}

}

int main()

{

float a[SIZE];

GetNum(a);

sort(a);

    print(a);

while(1);

return 0;

}

4、100以内的素数,全部打印出来

#include<stdio.h>

int main()

{

    int i, j, count=0;

for(i=2;i<=100;i++)

{

for(j=2;j<=i;j++)

{

if(i%j==0)break;

}

if(j==i)

{

printf("%d是素数\n",i);

            count++;

}

}

printf("1~100中素数个数为:%d\n",count);

while(1);

return 0;

}

5、一个数如果恰好等于他的因子之和,这个数被称为”完数”,例如:6=1+2+3.请编程找出1000以内的完数。

#include<stdio.h>

int main()

{

    int i, j, count=0, s;

for(i=1;i<=1000;i++)

{

s=0;

for(j=1;j<i;j++)

{

if(i%j==0)

{

                 s+=j;

}

}

if(s==i)

{

printf("%d是完数\n",i);

count++;

}

}

printf("1000内的完数个数为:%d\n",count);

while(1);

return 0;

}

猜你喜欢

转载自blog.csdn.net/qq_40616514/article/details/81046228
今日推荐