c语言常见代码以及循环

这篇博客介绍了C语言的基础知识,包括ASCII码、输入输出、循环结构(while、for)、数组操作、函数调用等。示例代码展示了如何打印ASCII码、找最大数、计算球体积和体重指数。此外,还探讨了不同类型的循环(while、for、do-while)及其应用,如二分查找法。

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

1、ASCII码

    printf("%c\n", 'a');
    printf("%c\n", 97);

输出的都是a,ASCII码97对应的是a

int main()
{

    int arr[] = { 73,32,99,97 };
    int i = 0;
    int size = sizeof(arr) / sizeof(arr[10]);//计算数组元素 个数
    while (i<size)
    {
        printf("%c", arr[i]);//打印ASCII码
        i++;
    }
    return 0;
}

 打印出来的是{73,32,99,97}对应的ASCII码 => I ca

//打印出生年月日

int main()
{
    int year = 0;
    int month = 0;
    int day = 0;
    scanf("%4d%2d%2d", &year, &month, &day);//%2d是 获取2位
    printf("year = %d\n", year);
    printf("month = %02d\n", month);//%02d是拿0补齐2位
    printf("day = %02d\n", day);
    return 0;

//学生基本信息

int main()
{
    int id = 0;
    float c = 0.0f;//后面加f以float存储,否则以double存储形式
    float math = 0.0f;
    float eng = 0.0f;
    scanf("%d,%f,%f,%f", &id, &c, &math, &eng);
    printf("学号为%d每科分数:%.2f,数学为%.2f,英语为%.2f ",id,c,math,eng);
    return 0;

//float存储小数

           0           1             0               1                       bit

                      2^-1         2^-2          2^-3       

                       0.5          0.25         0.125

                       0.5            0            0.125

                =>    0.625                                                 结果

 //printf的返回值

int main()
{
    int n = printf("hello world!\n");
    printf("%d\n", n);

    printf("printf(\"Hello world\\n\");\n");
    printf("count << \"Hello world!\" << endl;\n");
    return 0;
}

=> 

hello world!

13
printf("Hello world\n");
count << "Hello world!" << endl;

//printf返回值为int ,数值为字符串的大小

\为打印的时候防止转义

//找最大数
int main()
{
    int arr[4] = { 0 };//初始化
    int i = 0;
    while (i < 4)
    {
        scanf("%d", &arr[i]);
        i++;
    }
    int max = arr[0];
    i = 1;
    while (i < 4)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
        i++;
    }
    printf("%d\n", max);
    return 0;
}

//计算球体积
int main()
{
    float r = 0.0f;
    float v = 0.0f;
    scanf("%f", &r);
    v = 4 / 3.0 * 3.1415 * r * r * r;
    printf("%.3f\n", v);
    return 0;

//计算体重指数
int main()
{
    int weight = 0;
    int high = 0;
    scanf("%d %d", &weight, &high);
    float bmi = weight / (high / 100.0) / (high / 100.0);
    printf("%.2f\n", bmi);
    return 0;

2、while循环

//while 循环
int main()
{
	int i = 1;//初始化
	while (i <= 10)//判断
	{
		printf("%d ", i);//循环语句
		i++;//调整
	}
}

 3、for循环

      for(表达式1;表达式2;表达式3)   

           循环语句

表达式1:初始化

表达式2;判断

表达式3:调整

for(int i = 1;i <= 10;I++)

{

       printf("%d ",i);

       break;//跳出循环

        continue;//跳过本次循环后面的代码,直接来到i++,与while循环不一样

             //建议:不可在for循环体更改循环变量,for循环控制变量采用前闭后开

}

 int main()
{
    int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
    //0--9
    for (int i = 0; i < 10; i++)//最好不要i <=9
    {
        printf("%d ", arr[i]);
    }
    return 0;
}

for循环的变种

   for(  ;  ;  )//for循环,判断部分省略,意味着判断值恒成立为真

 = > 死循环 

int main()
{
    int i = 0;
    for (; i < 10; i++)//省略了初始化
    {
        printf("%d\n", i);
    }
    return 0;
}

=>可以执行

int main()
{
    for (i = 0; i < 10; i++)
    {
        for (j = 0; j < 10; j++)//外此循环一次后,j = 10,不满足内循环,循环一次
        {

        }
    }
    return 0;
}

 如果省略初始化,打印10次

for(int i = 0;i<10;i++)与int i = 0;for(i = 0;i<10;i++),C99语法支持int 写在for里面

 //for循环采用多个变量控制变量
int main()
{
    int y = 0;
    for (int x = 0, y = 0; x < 10, y < 10; x++, y++)
    {
        printf("%d %d\n", x, y);
    }
    return 0;
}//可以运行

3、do while循环

     do 

        {

             循环语句;

         }while(条件式);

break:跳出循环

continue:跳过后面循环语句接着判断下一次循环

//计算n的阶层
int main()
{
    int ret = 1;
    int i = 1;
    int n = 0;
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        ret = ret * i;
    }
    return 0;
}

 //计算1!+2!+3!......+10!;
int main()
{
    int n = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret = 1;
        for (int i = 1; i <= n; i++)
        {
            ret += ret * i;
        }
        sum = sum + ret;
    }
    printf("%d\n", sum);
}

//优化
int main()
{
    int n = 0;
    int ret = 1;
    int sum = 0;
    for (n = 1; n <= 10; n++)
    {
        ret = ret * n;
        sum = sum + ret;
    }
    printf("%d\n", sum);
    return 0;
}

//遍历查找在一个有序数组查找一个数
int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int find = 7;
    int size = sizeof(arr) / sizeof(arr[0]);
    for (int i = 0; i < size; i++)
    {
        if (arr[i] == find)
        {
            printf("找到了,下标是:%d\n", i);
            break;
        }if (i == size)
        {
            printf("找不到\n");
        }
    }

}

二分法查找 

 

 

//二分法查找在一个有序数组查找一个数
int main()
{
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int find = 7;
    int size = sizeof(arr) / sizeof(arr[0]);

    int left = 0;

    int right = size-1;

    while(left <= right)

   {

    int mid = (left + right)/2;
        if (arr[i]  find)
        {
             left = mid  +1;
        }else if (arr[mid]>find)
        {
           right = mid -1;
        }else

        {

         printf("找到了,下标是:%d\n", i);

         }

         if(left > right)

          {

              printf("找到了,下标是:%d\n", i);

           }
    }

}            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值