C 现实示例
实用案例
本页包含一系列在实际项目中使用的实用案例。
变量和数据类型
示例
使用变量存储大学生的不同数据:
// Student data
int studentID = 15;
int studentAge = 23;
float
studentFee = 75.25;
char studentGrade = 'B';
// 打印变量
printf("Student id: %d", studentID);
printf("Student age: %d", studentAge);
printf("Student fee: %f", studentFee);
printf("Student
grade: %c", studentGrade);
亲自试一试 »
示例
计算矩形的面积(长乘以宽):
// 创建整型变量
int length = 4;
int width = 6;
int
area;
// 计算矩形的面积
area = length * width;
// 打印此变量
printf("Length is: %d", length);
printf("Width is: %d", width);
printf("Area of the rectangle is: %d", area);
亲自试一试 »
示例
使用不同的数据类型计算并输出多个物品的总成本:
// 创建不同数据类型的变量
int items = 50;
float
cost_per_item = 9.99;
float total_cost = items * cost_per_item;
char
currency = '$';
// 打印变量
printf("Number of items: %d", items);
printf("Cost per item: %.2f %c", cost_per_item, currency);
printf("Total cost = %.2f %c", total_cost, currency);
亲自试一试 »
示例
计算用户在游戏中得分占最高分的百分比:
// 将游戏中的最高可能得分设置为 500 分。
int maxScore = 500;
// 用户的实际得分
int userScore = 423;
// 计算用户得分占最高可用得分的百分比
float percentage = (float) userScore / maxScore * 100.0;
// 打印百分比
printf("User's percentage is %.2f", percentage);
亲自试一试 »
有关 C 语言中变量和数据类型的教程,请访问变量章节和数据类型章节。
布尔值
示例
判断一个人是否达到投票年龄:
int myAge = 25;
int votingAge = 18;
printf("%d", myAge >= votingAge); // 返回 1(真),意味着 25 岁的人可以投票!
亲自试一试 »
您还可以将上面的代码包裹在 if...else 中,以便根据结果执行不同的操作:
示例
如果 myAge 大于或等于 18,则输出"已达到投票年龄!"。否则,输出"未达到投票年龄。":
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("Old enough to vote!");
} else {
printf("Not old enough
to vote.");
}
亲自试一试 »
有关 C 语言布尔值的教程,请访问布尔值章节。
条件语句(If...Else)
示例
使用 if...else 语句根据当前时间输出一些文本:
int time = 20;
if (time < 18) {
printf("Good day.");
} else {
printf("Good evening.");
}
亲自试一试 »
示例
检查用户是否输入了正确的验证码:
int doorCode = 1337;
if (doorCode == 1337) {
printf("Correct code.The door is now open.");
} else {
printf("Wrong code.The door remains closed.");
}
亲自试一试 »
示例
判断一个数是正数还是负数:
int myNum = 10;
if (myNum > 0) {
printf("The value is a positive number.");
} else if (myNum < 0) {
printf("The value is a negative number.");
} else {
printf("The value is 0.");
}
亲自试一试 »
示例
查询某人是否达到投票年龄:
int myAge = 25;
int votingAge = 18;
if (myAge >= votingAge) {
printf("Old enough to vote!");
} else {
printf("Not old enough
to vote.");
}
亲自试一试 »
示例
判断一个数是奇数还是偶数:
int myNum = 5;
if (myNum % 2 == 0) {
printf("%d is even.", myNum);
} else {
printf("%d is odd.", myNum);
}
亲自试一试 »
有关 C 语言条件语句的教程,请访问If..Else 章节。
Switch
示例
使用星期几编号计算并输出星期几名称:
int day = 4;
switch (day) {
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
}
亲自试一试 »
有关 C 语言中 switch 语句的教程,请访问switch 语句章节。
While 循环
示例
使用 while 循环创建一个简单的"倒计时"程序:
int countdown = 3;
while (countdown > 0) {
printf("%d", countdown);
countdown--;
}
printf("Happy New Year!!
");
亲自试一试 »
示例
Use a while loop to play a game of Yatzy:
int dice = 1;
while (dice <= 6) {
if (dice < 6) {
printf("No Yatzy
");
} else {
printf("Yatzy!
");
}
dice = dice + 1;
}
亲自试一试 »
示例
使用 while 循环反转一些数字:
// 一个包含一些特定数字的变量
int numbers = 12345;
// 用于存储反转数字的变量
int revNumbers = 0;
// 反转并重新排列数字
while (numbers) {
// 获取"numbers"的最后一个数字并将其添加到"revNumber"中。
revNumbers = revNumbers * 10 + numbers % 10;
// 移除 numbers 的最后一个数字。
numbers /= 10;
}
亲自试一试 »
有关 C 语言中 while 循环的教程,请访问while 循环章节。
for 循环
示例
使用 for 循环创建一个程序,该程序只打印 0 到 10 之间的偶数:
int i;
for (i = 0; i <= 10; i = i + 2) {
printf("%d", i);
}
亲自试一试 »
示例
使用 for 循环创建一个程序,打印指定数字(本例中为 2)的乘法表:
int number = 2;
int i;
// 打印数字 2 的乘法表。
for (i = 1; i <= 10; i++) {
printf("%d x %d = %d", number, i, number * i);
}
return 0;
亲自试一试 »
有关 C 语言 for 循环的教程,请访问for 循环章节。
数组
示例
创建一个程序来计算不同年龄的平均值:
// 一个存储不同年龄段的数组
int ages[] = {20, 22, 18, 35, 48, 26, 87, 70};
float avg, sum = 0;
int i;
// 获取数组的长度
int length = sizeof(ages) / sizeof(ages[0]);
// 遍历数组的元素
for (int i = 0; i < length; i++) {
sum += ages[i];
}
// 计算平均值的方法是将总和除以长度。
avg = sum / length;
// 打印平均值
printf("The average age is: %.2f", avg);
亲自试一试 »
示例
编写一个程序,找出不同年龄段中的最小年龄:
// 一个存储不同年龄段的数组
int ages[] = {20, 22, 18, 35, 48, 26,
87, 70};
// 获取数组的长度
int length = sizeof(ages) / sizeof(ages[0]);
// 创建一个变量,并将年龄数组的第一个元素赋值给它。
int lowestAge = ages[0];
// 遍历年龄数组的元素,找到最小的年龄
for (int i = 0; i < length; i++) {
if (lowestAge > ages[i]) {
lowestAge = ages[i];
}
}
亲自试一试 »
有关 C 语言数组的教程,请访问数组章节。
字符串
示例
使用字符串创建简单的欢迎信息:
char message[] = "Good to see you,";
char fname[] = "John";
printf("%s %s!", message, fname);
亲自试一试 »
示例
编写一个程序,统计指定单词中包含的字符数:
char word[] = "Computer";
printf("The word '%s' has %d characters in it.", word, strlen(word));
亲自试一试 »
有关 C 语言字符串的教程,请访问字符串章节。
用户输入
示例
获取用户名并打印出来:
char fullName[30];
printf("Type your full name:
");
fgets(fullName, sizeof(fullName), stdin);
printf("Hello %s", fullName);
运行示例 »
For a tutorial about user input in C, visit our User Input Chapter.
Functions
示例
使用函数创建一个程序,将华氏温度值转换为摄氏度:
// 将华氏度转换为摄氏度的函数
float toCelsius(float fahrenheit) {
return (5.0 / 9.0) * (fahrenheit - 32.0);
}
int main() {
// 设置华氏度值
float f_value = 98.8;
// 调用该函数并传入华氏温度值。
float result = toCelsius(f_value);
// 打印华氏温度值
printf("Fahrenheit: %.2f", f_value);
// 打印结果
printf("Convert Fahrenheit to Celsius: %.2f", result);
return
0;
}
亲自试一试 »
有关 C 语言函数的教程,请访问函数章节。
结构体
示例
使用结构体存储和输出有关汽车的不同信息:
struct Car {
char brand[50];
char model[50];
int year;
};
int main() {
struct Car car1 = {"BMW", "X5", 1999};
struct Car car2 = {"Ford", "Mustang", 1969};
struct Car car3 = {"Toyota", "Corolla", 2011};
printf("%s %s %d", car1.brand, car1.model, car1.year);
printf("%s %s %d", car2.brand, car2.model, car2.year);
printf("%s %s %d", car3.brand, car3.model, car3.year);
return 0;
}
亲自试一试 »
有关 C 语言结构体的教程,请访问结构体章节。
Memory Management
示例
struct list {
int *data; // 指向存储列表项的内存位置。
int numItems; // 指示列表中当前有多少个项目
int size; // 表示分配的内存可以容纳多少个项目
};
void addToList(struct list *myList, int item);
int main() {
struct list myList;
int amount;
// 创建一个清单,并预留足够的空间容纳 10 项内容。
myList.numItems = 0;
myList.size = 10;
myList.data = malloc(myList.size * sizeof(int));
// 确定内存分配是否成功
if (myList.data == NULL) {
printf("Memory allocation failed");
return 1; // 程序退出并返回错误代码
}
// 向列表中添加任意数量的项目,数量由 amount 变量指定。
amount = 44;
for (int i = 0; i < amount; i++) {
addToList(&myList, i + 1);
}
// 显示列表内容
for (int j = 0; j < myList.numItems; j++) {
printf("%d ", myList.data[j]);
}
// 不再需要内存时,请释放内存。
free(myList.data);
myList.data = NULL;
return 0;
}
// 此函数向列表中添加项目
void addToList(struct list *myList, int item) {
// 如果列表已满,则调整内存大小以容纳另外 10 个项目。
if (myList->numItems == myList->size) {
myList->size += 10;
myList->data = realloc( myList->data, myList->size * sizeof(int) );
}
// 将该项添加到列表末尾
myList->data[myList->numItems] = item;
myList->numItems++;
}
亲自试一试 »
有关 C 语言内存管理的教程,请访问内存管理章节。
随机数
示例
随机数在现实生活中的一个常见应用是掷六面骰子。我们可以使用rand() % 6来模拟这个过程,先得到 0 到 5 之间的数字,然后加 1 得到 1 到 6 之间的数字范围:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(NULL));
int dice1 = (rand() % 6) + 1;
int dice2 = (rand() % 6) + 1;
printf("You rolled %d and %d (total = %d)", dice1, dice2, dice1 + dice2);
return 0;
}
每次运行程序,你都会得到两个介于 1 和 6 之间的随机数,就像现实生活中掷两个骰子一样。
有关 C 语言中随机数的教程,请访问随机数章节。

