double pi = pi_over_4 * 4; // 将 pi/4 转换为 pi printf("圆周率的近似值: %f\n", pi); // 输出结果
return0; }
/* 求两个整数的最大公约数 辗转相除法:又名欧几里德算法,是求最大公约数的一种方法。它的具体做法是:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。 */ #include<stdio.h> intmain() { int a, b; int min,max,temp; printf("请输入两个数字:\n"); scanf("%d %d", &a, &b); min = a > b ? b : a; max = a > b ? a : b; while (max%min != 0) { temp = max%min; max = min; min = temp; } if (min == 1) { printf("这两个数互质."); } else { printf("这两个数字的最大公约数为:%d\n", min); } return0; }
intmain() { int a[6], i, n, temp; // 声明一个整型数组 a,大小为 6,以及三个整型变量 i, n 和 temp 用于循环计数和临时存储
// 使用 for 循环接收用户输入的 6 个整数值,并依次存入数组 a 中 for (i = 0; i < 6; i++) { // 循环 6 次(i 从 0 到 5),每次读取一个整数 scanf("%d", &a[i]); // 读取用户输入的一个整数,并存储在数组 a 的第 i 个位置 }
n = 0; // 初始化变量 n 为 0,n 将用来记录比 a[0] 大的最大元素的索引
// 使用 for 循环遍历数组 a 中除第一个元素外的其他元素 for (i = 1; i <= 5; i++) { // 从数组的第二个元素开始,直到最后一个元素 if (a[i] > a[0]) { // 如果当前元素 a[i] 大于数组的第一个元素 a[0] n = i; // 更新 n 为当前索引 i,即记录下比 a[0] 大的最大元素的索引 } }
intmain() { int a[9]; // 定义一个整型数组 a,大小为 9,用于存储用户输入的 9 个整数 int i, sum, x; // 声明三个整型变量 i, sum 和 x。i 用作循环计数器,sum 用于累加总和,x 用于临时存储用户输入的值 sum = 0; // 初始化 sum 为 0,表示开始时总和为 0
// 使用 for 循环接收用户输入的 9 个整数值,并依次存入数组 a 中 for (i = 0; i < 9; i++) { // 循环 9 次(i 从 0 到 8),每次读取一个整数 scanf("%d", &x); // 读取用户输入的一个整数,并存储在变量 x 中 a[i] = x; // 将变量 x 中的值赋给数组 a 的第 i 个元素
// 累加除中间元素外的所有元素到 sum if (i != 4) { // 如果当前索引 i 不等于 4(即不是中间的第五个元素) sum = sum + a[i]; // 将当前元素 a[i] 加到 sum 上 } }
// 打印累加的结果,即除中间元素外所有元素的总和 printf("%d\n", sum); // 输出总和 sum 并换行
intmain() { int a[25]; // 定义一个整型数组 a,大小为 25,用于存储用户输入的 25 个整数 int i, sum, x; // 声明三个整型变量 i, sum 和 x。i 用作循环计数器,sum 用于累加总和,x 用于临时存储用户输入的值 sum = 0; // 初始化 sum 为 0,表示开始时总和为 0
// 使用 for 循环接收用户输入的 25 个整数值,并依次存入数组 a 中 for (i = 0; i < 25; i++) { // 循环 25 次(i 从 0 到 24),每次读取一个整数 scanf("%d", &x); // 读取用户输入的一个整数,并存储在变量 x 中 a[i] = x; // 将变量 x 中的值赋给数组 a 的第 i 个元素
// 累加满足特定条件的元素到 sum if (i % 6 == 0 || i % 4 == 0) { // 如果当前索引 i 是 6 或 4 的倍数 sum = sum + a[i]; // 将当前元素 a[i] 加到 sum 上 } }
// 特别处理:将索引为 12 的元素也加到 sum 中 sum = sum + a[12]; // 无论 a[12] 是否已经包含在之前的累加中,这里都会再次将其加到 sum 上
// 打印累加的结果 printf("sum=%d\n", sum); // 输出总和 sum 并换行
// 定义一个函数 aver 来计算数组 a 中有多少个元素大于数组所有元素的平均值 intaver(int a[], int n) { int sum = 0; // 初始化变量 sum 用于存储数组元素的总和 double average = 0.0; // 初始化变量 average 用于存储数组元素的平均值
int count = 0; // 初始化计数器 count 用于统计大于平均值的元素数量
// 使用 for 循环遍历数组中的每个元素并累加到 sum for (int i = 0; i < n; i++) { sum += a[i]; // 将当前元素 a[i] 加到 sum 上 }
// 计算平均值,将 sum 转换为 double 类型以确保除法操作是浮点数除法 average = (double)sum / n;
// 再次使用 for 循环遍历数组中的每个元素 for (int i = 0; i < n; i++) { if (a[i] > average) { // 如果当前元素 a[i] 大于平均值 count++; // 则计数器 count 加1 } }
return count; // 返回大于平均值的元素数量 }
// main 函数是程序的入口点 intmain() {
int n; n = 10; // 设定数组的大小为 10
int a[10]; // 定义一个整数数组 a,长度为 10
// 使用 for 循环从用户处接收 10 个整数,并依次存入数组 a 中 for (int i = 0; i < n; i++) { scanf("%d", &a[i]); // 读取用户输入的整数,并存储在数组 a 的第 i 个位置 }
// 调用 aver 函数计算并打印出数组 a 中有多少个元素大于平均值 printf("%d\n", aver(a, 10)); // 输出结果后换行
// 函数find用于在一个整数数组中查找特定值x的位置。 intfind(int a[], int x) { int i, result; // 遍历数组中的每个元素。 for (i = 0; i < 10; i++) { // 如果当前元素等于x,则返回其位置(索引+1)。 if (a[i] == x) { result = i + 1; return result; } // 如果当前元素不等于x,则设置result为-1。这行代码应该放在循环外部, // 因为只要有一个元素匹配,就应该立即返回结果,而不是继续设置result为-1。 else result = -1; } // 如果遍历完整个数组都没有找到x,则返回-1表示未找到。 return result; }
intmain() { int a[10]; // 定义一个大小为10的整数数组。 int n, x; // n用于临时存储输入的数值,x是要查找的值。 int result; // 存储find函数的返回值。 int i;
// 从用户处读取10个整数并存储到数组a中。 for (i = 0; i < 10; i++) { scanf("%d", &n); a[i] = n; }
// 从用户处读取要查找的整数值x。 scanf("%d", &x);
// 调用find函数,在数组a中查找x,并将结果存储在result变量中。 result = find(a, x);
/* 题目内容:利用指针编写程序,统计字符串的长度。(不要使用求字符串长度函数) 输入格式:gets() 输出格式:"Length of the string is %d\n" 输入样例:I like programming. 输出样例:Length of the string is 19 */ #include<stdio.h>