c语言编程题经典100例
c语言编程题经典100例详细介绍
以下是一些C语言编程经典例题:
简单计算类
- 两数相加:
- 题目:输入两个整数,计算它们的和并输出。
- 思路:使用 scanf 函数获取用户输入的两个整数,将它们存储在变量中,然后相加并输出结果。
- 示例代码:
#include
int main() {
int num1, num2, sum;
printf("请输入两个整数:");
scanf("%d %d", &num1, &num2);
sum = num1 + num2;
printf("两数之和为:%d\n", sum);
return 0;
}
- 求平均数:
- 题目:输入三个浮点数,求它们的平均数。
- 思路:通过 scanf 接收三个浮点数,相加后除以3得到平均数,最后输出。
- 示例代码:
#include
int main() {
float num1, num2, num3, average;
printf("请输入三个浮点数:");
scanf("%f %f %f", &num1, &num2, &num3);
average = (num1 + num2 + num3) / 3;
printf("平均数是:%f\n", average);
return 0;
}
循环应用类
- 打印九九乘法表:
- 题目:使用循环打印九九乘法表。
- 思路:外层循环控制行数,内层循环控制列数,在循环内部输出乘法算式。
- 示例代码:
#include
int main() {
int i, j;
for (i = 1; i <= 9; i++) {
for (j = 1; j <= i; j++) {
printf("%d x %d = %d\t", j, i, i * j);
}
printf("\n");
}
return 0;
}
- 计算阶乘:
- 题目:输入一个正整数,计算它的阶乘。
- 思路:使用循环,从1累乘到输入的整数。
- 示例代码:
#include
int main() {
int n, i;
long long factorial = 1;
printf("请输入一个正整数:");
scanf("%d", &n);
if (n < 0) {
printf("负数没有阶乘。\n");
} else {
for (i = 1; i <= n; i++) {
factorial *= i;
}
printf("%d的阶乘是:%lld\n", n, factorial);
}
return 0;
}
数组应用类
- 数组排序(冒泡排序):
- 题目:输入一组整数,使用冒泡排序法对数组进行排序并输出。
- 思路:比较相邻的元素,如果顺序不对就交换,经过多轮比较,最大的元素会“浮”到数组末尾。
- 示例代码:
#include
int main() {
int arr[10];
int i, j, temp;
printf("请输入10个整数:");
for (i = 0; i < 10; i++) {
scanf("%d", &arr[i]);
}
for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (arr[j] > arr[j + 1]) {
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
printf("排序后的数组:");
for (i = 0; i < 10; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
- 数组元素查找:
- 题目:在一个已排序的整数数组中查找指定元素,若找到返回其下标,否则返回 -1。
- 思路:使用二分查找法,通过比较中间元素与目标元素的大小,不断缩小查找范围。
- 示例代码:
#include
int binarySearch(int arr[], int l, int r, int x) {
while (l <= r) {
int mid = l + (r - l) / 2;
if (arr[mid] == x) {
return mid;
} else if (arr[mid] < x) {
l = mid + 1;
} else {
r = mid - 1;
}
}
return -1;
}
int main() {
int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
int n = sizeof(arr) / sizeof(arr[0]);
int x;
printf("请输入要查找的数:");
scanf("%d", &x);
int result = binarySearch(arr, 0, n - 1, x);
if (result == -1) {
printf("未找到该元素。\n");
} else {
printf("元素在数组中的下标是:%d\n", result);
}
return 0;
}