C语言学习笔记22/08/15

这篇博客介绍了C语言中的dowhile循环特性及其应用场景,展示了打印数字、计算阶乘、二分查找法的实现。此外,还探讨了函数的分类,包括库函数和自定义函数,并提供了找出两个整数中最大值和交换两个变量值的函数示例。最后,讨论了函数参数、函数调用的方式以及C语言常用库函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

循环语句do while

循环至少执行一次,使用的场景有限,所以不是经常使用。

打印数字1~10:

打印数字1~4:

一直循环1~4:

计算n的阶乘:

 计算1!+2!+3!+……+10!:

(折半查找法/二分查找法)在一个有序数组中查找具体的某个数字n:

编写int binsearch(int x,int v[],int n);功能:在v[0]<=v[1]<=v[2]<=...<=v[n-1]的数组中查找x

编写代码,演示多个字符从两端移动,向中间汇聚:

 

编写代码实现模拟用户登录情景,并且只能登录三次:

(只允许输入三次密码,如果密码正确则提示登录成功,如果三次均输入错误,则退出程序。)

(发现代码越来越长,一张截图难以放下了,然后我现在才发现先复制代码再点击代码段就能很直观的展现代码在博客,哈哈哈哈哈哈哈哈哈哈学废了!)

猜数字游戏:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void menu()
{
    printf("**********************************\n");
    printf("*********** 1.play     **********\n");
    printf("*********** 0.exit     **********\n");
    printf("**********************************\n");
}
//RAND_MAX--rand函数能返回随机数的最大值。
void game()
{
    int random_num = rand() % 100 + 1;
    int input = 0;
    while (1)
    {
        printf("请输入猜的数字>:");
        scanf("%d", &input);
        if (input > random_num)
        {
            printf("猜大了\n");
        }
        else if (input < random_num)
        {
            printf("猜小了\n");
        }
        else
        {
            printf("恭喜你,猜对了\n");
            break;
        }
    }
}
int main()
{
    int input = 0;
    srand((unsigned)time(NULL));
    do
    {
        menu();
        printf("请选择>:");
        scanf("%d", &input);
        switch (input)
        {
        case 1:
            game();
            break;
        case 0:
            break;
        default:
            printf("选择错误,请重新输入!\n");
            break;
        }
    } while (input);
    return 0;
}

C语言中函数的分类

1.库函数

        使用库函数必须要知道的一个秘密就是:使用库函数,必须包含#include对应的头文件!

2.自定义函数

        自定义函数和库函数一样,有函数名,返回值类型和函数参数。但是不一样的是这些都是我们自己设计。这给程序员一个很大的发挥空间。

函数的组成:

ret_type fun_name(para1, * )
{
 statement;//语句项
}
 
ret_type 返回类型
fun_name 函数名
para1    函数参数

写一个函数可以找出两个整数中的最大值:

#include <stdio.h>
//get_max函数的设计
int get_max(int x, int y) {
 return (x>y)?(x):(y);
}
int main()
{
 int num1 = 10;
 int num2 = 20;
 int max = get_max(num1, num2);
 printf("max = %d\n", max);
 return 0; 
}

写一个函数可以交换两个整形变量的内容:

//实现成函数,但是不能完成任务
//当实参传给形参的时候,形参其实是实参的一份临时拷贝,对形参的修改是不会改变实参的
void Swap1(int x, int y) {
 int tmp = 0;
 tmp = x;
 x = y;
 y = tmp; 
 }
//正确的版本
void Swap2(int *px, int *py) {
 int tmp = 0;
 tmp = *px;
 *px = *py;
 *py = tmp; 
 }
int main()
{
 int num1 = 1;
 int num2 = 2;
 Swap1(num1, num2);
 printf("Swap1::num1 = %d num2 = %d\n", num1, num2);
 Swap2(&num1, &num2);
 printf("Swap2::num1 = %d num2 = %d\n", num1, num2);
 return 0; 
 }

C语言常用的库函数有:

IO函数
字符串操作函数
字符操作函数
内存操作函数
时间/日期函数
数学函数
其他库函数

函数的参数
①实际参数(实参)
        真实传给函数的参数,叫实参。实参可以是:常量、变量、表达式、函数等。无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。
②形式参数(形参)
        形式参数是指函数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成之后就自动销毁了。因此形式参数只在函数中有效。

函数调用(交换两个变量的值)

swap1(传值调用):

        实参num1,num2和形参x,y使用的不是同一块内存空间,虽然形参拥有和实参一样的内容,但是分别占用了不同的内存块,形参相当于实参的一份临时拷贝,对形参的修改不会影响实参;

swap2(传址调用):

        形参里面放的是实参的地址。这种传参方式可以让形参和实参建立起真正的联系,此时对于形参的修改可以改变函数外部的实参。

交换10和20的值:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

void swap2(int* num1, int* num2)
{
	int temp = *num1;
	*num1 = *num2;
	*num2 = temp;
}

int main()
{
	int num1 = 10;
	int num2 = 20;
	printf("交换前: \n");
	printf("%d %d\n", num1, num2);
	putchar('\n');
	swap2(&num1, &num2);
	printf("交换后: \n");
	printf("%d %d\n", num1, num2);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值