第六天作业

1~n中有多少个9

#include <stdio.h>

 

void fun(int n)

{

    int i;

    int temp;

    int count = 0;

    int b;

 

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

    {

       temp = i;

       while(temp !=0)

       {

           b=temp %10;

           temp=temp/ 10;

           if(b ==9)

           {

              count++;

           }

       }

    }

 

    printf("Theresult is:%d\n",count);

}

 

int main()

{

    int n;

 

    printf("Entera number!\n");

    scanf("%d",&n);

 

    fun(n);

 

    return 0;

}

 

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

 

#include<stdio.h>

#define n 100

 

int main()

{

    int i,k,count;

    int a[n];

   

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

    {

        a[i] = i +1;

    }

 

    i = 0;

    k = 0;        //读数  

    count = 0;

 

 

    while(count< n-1)       //当被踢出的人的个数达到n-1的时候跳出while();

    {

        if(a[i] !=0)        //当a[i]不等于0,其实也就是只要a[i]还没有被重新赋值0,那么就要遍历他,不放过他。

    {

        k++;

    }

 

    if(k == 3)

    {

        k = 0;

        count++;

        a[i] = 0;

    }

 

    i++;

 

    if(i == n)           //遍历到a[n]之后,重新给i赋值0,也就是从a[0]继续进行又一次的遍历;也就是上面注释中说的进行一次又一次的遍历

    {

        i = 0;

    }

    }

 

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

    {

        if(a[i] !=0)

    {

        printf("%d\n",a[i]);

    }

    }

    return 0;

 

}

 

 

输入5个数(含负数、小数)将它们按由小到大的顺序排列起来

#include <stdio.h>

#define MAXSIZE 100

 

int sequence(float *num_array,int num)

{

int i;

int j;

float tmp;

 

for(i = 0;i < num-1; i++)

{

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

{

if(*(num_array + i) > *(num_array + j))

{

tmp = *(num_array + i);

*(num_array + i) = *(num_array + j);

*(num_array + j) = tmp;

}

}

 

 

}

 

 

return 0;

}

 

 

int main(int argc,char *argv[])

{

int i;

int k;

 

 

int total_num = 0;

float num_array[MAXSIZE];//定义最大容量的数组,存放数字

 

printf("共需要输入多少个数字:\n");

scanf("%d",&total_num);

 

 

 

 

printf("依次输入数字:\n");

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

{

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

}

 

sequence(num_array,total_num);//调用函数

 

printf("从小到大排序后结果为:\n");

for(k = 0;k < total_num;k ++)

{

printf("%g ",num_array[k]);

}

 

printf("\n");

return 0;

}

 

 

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

 

 

#include <stdio.h>
 
int main()
{
    int i,j;
    int temp;
 
    for(i = 2;i <=100;i++)
    {
        int temp = 1;
        for(j = 2; j < i;j++)
{
    if(i % j == 0)
    {
        temp = 0;
        break;
    }
}
if(temp == 1)
{
    printf("%d ",i);
}
    }
 
    return 0;
}

 

 

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

 

 

#include<stdio.h>
 
 
int main()
{
printf("perfect number between 0 -1000:\n");
int i = 0, j = 0, sum = 0;
for(i = 1; i <= 1000; ++i)
{
for(j = 1; j < i; ++j)
{
if(0 == i % j)
{
sum = sum + j;
}
}

if(sum == i)
{
printf("%d ",i);

}
sum =0;
}
printf("\n");
return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值