黑马程序员****C语言基础****控制语句:循环

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

         C语言有三种循环结构:while、for、do while

         while循环:

<span style="font-size:24px;">#include <stdio.h>

int main(int argc, const char * argv[]) {
        int i = 0;
    while (i<3) {
        printf("i = %d\n",i++);
    } 
    return 0;
}</span>

  

    运行结果:i = 0

         i = 1

         i = 2

                当 i < 3时为停止条件。循环中必须包含一个表达式来使while循环的条件为假,否则会一直循环下去。

           for循环:

<span style="font-size:24px;">#include <stdio.h>

int main(int argc, const char * argv[]) {
        int i = 0;
    for (i = 0; i<3; i++) {
        printf("i = %d\n",i);
    }
    
    return 0;
}</span>



            运行结果:i = 0

         i = 1

         i = 2

     for的括号中包含了三个表达式:第一个是初始化、第二个是判断条件、第三个是改变或更新

     do while 循环:

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int i = 0;
    do {
        printf("i = %d\n",i++);
    } while (i<3);
    return 0;
}
    运行结果:i = 0

         i = 1

         i = 2

    while循环和for循环都是入口条件循环,在执行循环之前先判断条件,相比do while来说,可能一次都不执行。do while是先执行一次再进行判断,是否继续执行。


    嵌套循环和if判断语句的相互结合:

#include <stdio.h>
#include <stdlib.h>
//冒泡排序:利用for双循环
void maopao(int arr[],int len){
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j<len-1; j++) {
            int temp;  //声明动态交换变量
            if (arr[j+1]>arr[j]) {
                temp     =  arr[j+1];
                arr[j+1] =  arr[j];
                arr[j]   =  temp;
            }
        }
    }
}
//利用for循环遍历数组
void printArr(int arr[],int len){
    for (int i=0; i<6; i++) {
        printf("%d\t",arr[i]);
    }
    printf("\n");
}
int main(int argc, const char * argv[]) {
    //声明一个无序数组
    int arr [6]={12,58,61,8,9,555};
    printf("排序之前的数组是: \n");
    //遍历输出无序数组
    printArr(arr,6);
    //调用冒泡排序函数
    maopao(arr, 6);
    printf("排序之后的数组是: \n");
    //遍历输出排序后的数组
    printArr(arr,6);
  
}
     运行结果:

排序之前的数组是: 

1258 61 8 9 555

排序之后的数组是: 

55561 58 12 9 8


     指针:

     一个数组为地址的变量,指针变量的数值表示的是地址。

     int *p;

     int 表示这是一个整型指针变量

     *表示这个变量是一个指针

     p是指针变量名。

     指针的用途非常广泛,指针可以指向基本数据类型、函数、结构类型、文件等。。。

     

#include <stdio.h>

int main(int argc, const char * argv[]) {
    int i = 0;
    printf("i的地址:%p",&i);
    return 0;
}
    运行结果: i的地址:0x7fff5fbff7fc

    实例:利用指针做计算机

#include <stdio.h>
//1.定义加减乘除求余的函数
void caculator(int a,int b,int *jia,int *jian,int *cheng,float *chu,int *yu){
    *jia   = a + b;
    *jian  = a - b;
    *cheng = a * b;
    *chu   = a/(float)b;
    *yu    =a%b;
}
int main(int argc, const char * argv[]) {
//2.定义变量
    int x = 1, y = 1;
    int jia   = 0;
    int jian  = 0;
    int cheng = 0;
    float chu = 0.0f;
    int yu    = 0;
//3.提示用户输入两个数字
    printf("请输入两个数字,以空格隔开:");
//4.保存用户输入的数字
    scanf("%d %d",&x,&y);
//5.调用第一步的计算函数
    caculator(x, y, &jia, &jian, &cheng, &chu, &yu);
//6.打印计算结果
    printf("jia   = %d\n"   ,jia);
    printf("jian  = %d\n"   ,jian);
    printf("cheng = %d\n"   ,cheng);
    printf("chu   = %0.2f\n",chu);
    printf("yu    = %d\n"   ,yu);   
    return 0;
}
    运行结果:

请输入两个数字,以空格隔开:20 5

jia   = 25

jian  = 15

cheng = 100

chu   = 4.00

yu    = 0

    指针的使用比函数的调用更为方便,简化了程序代码的编写。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值