2022/10/2 C语言练习

发布于:2022-12-02 ⋅ 阅读:(885) ⋅ 点赞:(0)

作为一个毫无经验自学的小白,开始正式学习C语言,希望能够每天都坚持下去。

今日练习:数字交换函数

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

//传值调用

//void swap(int* x, int* y)//错误写法,x,y并没有建立任何联系,将x,y的值交换并不会使a,b数值交换。当实参传给形参的时候,形参其实是实参的一份的临时拷贝,对形参的修改不会影响实参
//{
//    int tmp=0;
//    tmp = *x;
//   *x = *y;
//   *y = tmp;
//}

//传址调用

void swap(int* x, int* y)//通过指针交换存储的内存地址来实现a,b数值的交换
{
    int tmp=0;
    tmp = *x;
    *x = *y;
    *y = tmp;
}
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d%d", &a, &b);//scanf 需要取地址,所以a,b,前要加&取地址符
    printf("a=%d b=%d\n",a,b);
    swap(&a, &b);
    printf("a=%d b=%d", a, b);
    return 0;
}

练习2:设计统计素数函数

#include <stdio.h>
#include <string.h>
#include <math.h>
int is_prime(int a)
{
    int b = 0;
    for (b = 2; b <= sqrt(a); b++)
    {
        if (a % b == 0)
        {
            break;
        }
    }
    if (b > sqrt(a))
        {
            return 1;
        }
}
int main()
{
    //打印素数
    int i = 0;
    int j = 0;
    int count = 0;
    printf("始数为:");
    scanf_s("%d", &i); 
    printf("\n尾数为:");
    scanf_s("%d", &j);
    if(i==1)//始数为1的情况
    {
        i++;
    }
    if (i> j)//始数大于尾数的情况
    {
        printf("起始数输入错误");
        return 0;
     }

    for (i; i <= j; i++)
    {
        if (is_prime(i) == 1)
        {
            printf("%d ",  i );
            count++;
        }
    }
        
    printf("\n共有%d个素数\n", count);
    return 0;
}

练习3:找闰年函数

#include <stdio.h>
int is_leap_year(int y)
{
    if (y % 4 == 0 && y % 100 !=0)
    {
        return 1;
    }
    if(y%400==0)
    {
        return 1;
    }
    return 0;
}
int main()
{
    int year1 = 0;
    int year2 = 0;
    int count = 0;
    printf ("起始年份:");
    scanf_s ("%d", &year1);
    printf("结束年份:");
    scanf_s("%d", &year2);
    if (year1 > year2)
    {
        printf("起始年份输入错误\n");
        return 0;
    }
    for(year1;year1<=year2;year1++)
    {
        if(is_leap_year(year1)==1)
        {
            printf(" %d ", year1);
            count++;
        }
    }
    printf("\n共有%d个闰年",count);
    return 0;
}

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到