数组、函数调用

函数调用:

  1. 题目:通过编程实现,统计1~n有多少个9 (n通过参数传入)

#include<stdio.h>

void fun(int n);// main函数一般置于调用函数下方;
int main()
{
    int n;

    printf("Please input one number : \n");
    scanf("%d", &n);

    fun(n);
        return 0;
}

void fun( int n)
{
    int i;
    int j;
    int count = 0;
    int a;

    for(i = 0; i <= n; i++)
    {
        j = i;
        while(j != 0)
        {
            a = j % 10;
            if(9 == a)
            {
                count++;
            }
            j = j / 10;
        }
    }
    printf("9的个数:%d\n", count);
}

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

#include<stdio.h>

int main()
{
    int n, i, sum;
    int count = 0;
    int a[100];
    
    printf("人的数量 :");
    scanf("%d", &n);
    sum = n;

    for(i = 0; i < n; i++)
    {
        a[i] = i + 1;
    }
    i = 0;
    while(n > 1)
    {
        if(a[i] != 0)
        {
            count++;
        }
        if(count == 3)
        {
            a[i] = 0;
            count = 0;
            n--;
        }
        i++;
        if(i == sum)
        {
            i = 0;
        }
    }
    for(i = 0;i < sum; i++ )
    {
        if(a[i] != 0)
        {
            printf("余下的人: %d\n", 1 + i);//下标加一,a[0]对应一号人...
        }
    }
    return 0;
}

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

#include<stdio.h>

int main()
{
    int i;
    int j;
    int sum = 0;

    printf("perfect number between 0 - 1000 : ");

    for(i = 1; i <= 1000; i++ )
    {
        for(j = 1; j < i; j++)
        {
            if(0 == i%j)
            {
                sum+=j;
            }
        }
        if(sum == i)
        {
             printf("%d ", i);
         }
        sum = 0;
         }
    printf("\n");
    return 0;
}

猜你喜欢

转载自blog.csdn.net/GX0401/article/details/81194268