——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
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 = 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
指针的使用比函数的调用更为方便,简化了程序代码的编写。