数组
- 声明数组必须要去顶数组长度
c
#include <stdio.h>
int main() {
// 主动声明长度
int arr1[3] = {1, 3, 5};
// 长度由内容确定
int arr2[] = {2, 4, 6, 8};
}
遍历数组
同其他编程语言一样, 但是在c语言中,无法直接获取数组的长度, 比如js的 arr.length
属性, 需要手动声明需要遍历多少次, 所以我推荐, 在使用数组的时候, 先声明数组的长度
c
#include <stdio.h>
int main() {
int arr[] = {2, 4, 6, 8};
for (int i = 0; i<4; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
}
c
#include <stdio.h>
int main() {
int len = 4;
int arr[len] = {2, 4, 6, 8};
for (int i = 0; i<len; i++) {
printf("arr[%d] = %d\n", i, arr[i]);
}
}
字符串
字符串的本质就是 char 数组(默认在最后增加了一个 '\0' 的元素)
c
#include <stdio.h>
int main() {
// 直接声明字符串
char str1[] = "hello";
printf("str1 %s\n", str1);
// 使用数组声明字符串, 注意最后一个元素
char str2[] = {'h', 'e', 'l', 'l', 'o', '\0'};
printf("str2 %s\n", str2);
}
获取字符串长度
注意需要导入头文件
c
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "hello";
int len = strlen(str);
printf("arr length is %d \n", len); // 5
}
获取用户输入
c
#include <stdio.h>
int main() {
// 获取用户输入(数字)
int num;
scanf("%d", &num);
printf("your input is: %d \n", num);
// 获取用户输入(浮点数)
float fnum;
scanf("%f", &fnum);
printf("your input is: %f \n", fnum);
}
猜数字游戏
c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 可以先不管这些是什么,只需要知道
// 这个方法生成指定范围内的随机数字
int range(int min, int max) {
srand(time(NULL));
return rand() % (max - min + 1) + min;
}
int main() {
printf("===== 猜数字游戏 =====\n");
// 数字范围
int min = 1;
int max = 9;
// 谜底数字
int secret_num = range(min, max);
// 输入次数控制
int guess_changes = 3;
printf("请输入一个数字(%d-%d), 你有%d次机会\n", min, max, guess_changes);
for (int i = 0; i < guess_changes; i++) {
// 获取用户输入(数字)
int input_num;
scanf("%d", &input_num);
if (input_num > secret_num) {
printf("你猜的数字太大了\n");
} else if (input_num < secret_num) {
printf("你猜的数字太小了\n");
} else {
printf("恭喜你猜对了, 你赢了\n");
break;
}
if (i == guess_changes - 1) {
printf("很遗憾, 你的机会用完了\n");
}
}
}