C语言编程练习(一)

简介: C语言编程练习(一)

1.题目:通过编程实现,统计1~n有多少个9

提示:n通过参数传入

#include <stdio.h>
int main()
{
    int num,sum = 0,temp;
    printf("put in num = \n");
    scanf("%d",&num);
    getchar();
    for(int i = 1; i <= num ; i++ )
    {
        temp = i;
        while(temp != 0)
        {
            if(temp % 10 == 9)
            {
                sum += 1;
            }
            temp = temp / 10;
        }
    }
    printf("sum = %d\n",sum);
    return 0;
}


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

提示:用数组完成

#include <stdio.h>
#include <string.h>
int main()
{
    int num_people,i;
    printf("put in num_people = \n");
    scanf("%d",&num_people);
    char term[num_people + 1];
    for(i = 0; i < num_people; i++)
    {
        term[i] = i + 1;
    }
    term[num_people] = '\0';
    i = 0;
    int count = 0,temp;
    temp = num_people;
    while (num_people > 1)
    {
        if (term[i] != 0)
        {
            count++;
        }
        if(count == 3)
        {
            count = 0;
            num_people = num_people - 1;
            term[i] = 0;
        }
        i++;
        if(i == temp )
        {
            i = 0;
        }
    }
    for(i = 0; i <= temp; i++)
    {
        if(term[i] != 0)
        {
            printf("The last people = %d\n",term[i]);
        }
    }
    return 0;
}


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

提示:需要排数的数字通过参数传递进来,

例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7

#include <stdio.h>
int main()
{
    double num_1,num_2,num_3,num_4,num_5,temp;
    scanf("%lf %lf %lf %lf %lf",&num_1,&num_2,&num_3,&num_4,&num_5);
    //printf("%lf %lf %lf",num_1,num_2,num_3);
    double term[5];
    term[0] = num_1;
    term[1] = num_2;   
    term[2] = num_3;
    term[3] = num_4;
    term[4] = num_5;
    for(int i = 0; i < 4; i++)
    {
        int temp_i,temp_j;
        temp = term[i];
        for(int j = 1;j < 5 - i ; j++)
        {
            if(term[i+j] < temp)
            {
                temp = term[i+j];
                temp_i = i;
                temp_j = j;
                term[temp_i + temp_j] = term[i];
                term[i] = temp;
            }
        }
    }
    for(int i = 0;i < 5; i++)
    {
        printf("num_%d = %f\n",i,term[i]);
    }
    return 0;
}


4.题目:求100以内的素数,全部打印出来


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


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

#include <stdio.h>
int func(int a)
{
    int sum = 0;
    for(int i = 1; i < a; i++)
    {
        if(a % i == 0)
        {
            sum += i;
        }
    }
    return sum;
}
int main()
{
    for(int i = 1; i <= 1000; i++)
    {
        if(i == func(i))
        {
            printf("%d\n",i);
        }
    }
    return 0;
}


相关文章
|
1月前
|
监控 网络协议 API
C语言系统编程
C语言系统编程
|
1月前
|
Linux C语言 开发者
Linux系统下C语言的高阶编程
Linux系统下C语言的高阶编程
15 0
|
1月前
|
存储 C语言 索引
掌握多维数组,让你的C语言编程技能暴涨!
掌握多维数组,让你的C语言编程技能暴涨!
|
2天前
|
C语言
C 语言解 常见编程题(下)
C 语言解 常见编程题
37 0
|
23天前
|
Linux 测试技术 C语言
【Linux】应用编程之C语言文件操作
【Linux】应用编程之C语言文件操作
|
1月前
|
编译器 C语言
拒绝摆烂!C语言练习打卡第七天
拒绝摆烂!C语言练习打卡第七天
|
1月前
|
C语言
拒绝摆烂!C语言练习打卡第六天
拒绝摆烂!C语言练习打卡第六天
|
1月前
|
C语言
拒绝摆烂!C语言练习打卡第五天
拒绝摆烂!C语言练习打卡第五天
拒绝摆烂!C语言练习打卡第五天
|
1月前
|
编译器 C语言
拒绝摆烂!C语言练习打卡第四天
拒绝摆烂!C语言练习打卡第四天
|
1月前
|
编译器 C语言
拒绝摆烂!C语言练习打卡第三天
拒绝摆烂!C语言练习打卡第三天