-
分别定义函数求圆的面积和周长。
-
写一个函数,分别求三个数当中的最大数。
-
写一个函数,计算输入n个数的乘积
-
一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息
-
写一个函数求n! ,利用该函数求1!+2!+3!+4!+。。。+10!的和。
-
Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!,主函数中输入n值,求sn的结果。
-
写一个函数输出斐波那契数列前10项,并求和
-
8、定义一个求平均成绩的函数,实现在一个一维数组score内放5个学生成绩,调用函数求得平均成绩
-
有两个班级,分别有5和8名学生,定义average(int b[],int n)函数,调用average函数,分别求这两个班的学生的平均成绩。
-
定义一个函数,实现对字符串的逆序打印。
-
从键盘为a[5][2]整型数组输入10个整数,调用函数找出该二维数组当中的最小值、最大值、平均值,并输出
-
写一个函数,使给定的3*3的二维数组转置,即行列互换。
-
编写函数求区间[100,500]中所有的回文数。
-
(附加题)输入4个学生3门课的成绩,分别用函数实现下列功能:
//1、分别定义函数求圆的面积和周长。
#include<stdio.h>
#define pi 3.14
double mj(double r){return pi*r*r;
}
double zc(double r){return 2 * pi * r;
}
int main(){double r;printf("输入圆的半径:");scanf("%lf", &r);printf("圆的面积为:%.2f\n", mj(r));printf("圆的周长为:%.2f\n", zc(r));return 0;}//2、写一个函数,分别求三个数当中的最大数。
#include <stdio.h>
int findmax(int a, int b, int c){int max = a;if (b > max){max = b;}if (c > max){max = c;}return max;
}int main(){int x, y, z;printf("请输入三个数字:");scanf("%d %d %d", &x, &y, &z);printf("最大的数为:%d\n", findmax(x, y, z));return 0;
}//3、写一个函数,计算输入n个数的乘积
#include <stdio.h>
int cj(int n){int result = 1;int num;for(int i = 0; i < n; i++){printf("请输入第%d个数:", i + 1);scanf("%d", &num);result *= num;}return result;
}
int main(){int num;printf("请输入n的值:");scanf("%d", &num);printf("结果为:%d\n", cj(num));
}//4.一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息
#include <stdio.h>
#include <stdbool.h>
bool sushu(int num){if (num <= 1){return false;}for (int i = 2; i*i <= num; i++){if (num%i == 0){return false;}}return true;
}
int main(){int num;printf("请输入一个整数:");scanf("%d", &num);if (sushu(num)){printf("%d是素数\n", num);}else{printf("%d不是素数\n", num);}return 0;
}//5.写一个函数求n!, 利用该函数求1! + 2! + 3! + 4! + 。。。 + 10!的和
#include<stdio.h>
int jc(int n){if (n == 0 || n == 1){return 1;}else{return n*jc(n - 1);}
}
int main(){int sum = 0;for (int i = 1; i <= 10; i++){sum += jc(i);}printf("sum=%d\n", sum);return 0;
}//6.Sn = 1 + 1 / 1! + 1 / 2! + 1 / 3! + 1 / 4! + … + 1 / n!,
//主函数中输入n值,求sn的结果。
#include <stdio.h>double hanshu(int n) {double sum = 0;double fenzi = 1;for (int i = 1; i <= n; i++) {fenzi *= i;sum += 1 / fenzi;}return sum + 1;
}int main() {int n;printf("enter n: ");scanf("%d", &n);printf("sum= %6lf\n",hanshu(n));return 0;
}//7、写一个函数输出斐波那契数列前10项,并求和
#include<stdio.h>
int fib(int n){if (n == 1 || n == 2)return 1;elsereturn fib(n - 1) + fib(n - 2);
}
int main(){int n = 10, i, j, sum = 0;for (i = 1, j = 0; i <= n; i++, j++){if (j % 2 == 0 && j != 0)printf("\n");printf("%d\t", fib(i));sum += fib(i);}printf("\nsum=%d\n", sum);
}//8、定义一个求平均成绩的函数,实现在一个一维数组score内放5个学生成绩,
//调用函数求得平均成绩
#include <stdio.h>double averageScore(int score[], int n) {int sum = 0;for (int i = 0; i < n; i++) {sum += score[i];}return (double)sum / n;
}int main() {int score[5];printf("请输入5个学生成绩:\n");for (int i = 0; i < 5; i++) {scanf("%d", &score[i]);}double avg = averageScore(score, 5);printf("平均成绩为:%.2lf\n", avg);return 0;
}//9、有两个班级,分别有5和8名学生,定义average(int b[], int n)函数,
//调用average函数,分别求这两个班的学生的平均成绩。
#include <stdio.h>double average(int b[], int n) {int sum = 0;for (int i = 0; i < n; i++) {sum += b[i];}return (double)sum / n;
}int main() {int class1[5] = { 85, 90, 88, 92, 87 };int class2[8] = { 78, 85, 90, 92, 88, 75, 80, 86 };double avg1 = average(class1, 5);double avg2 = average(class2, 8);printf("第一个班的平均成绩为:%.2lf\n", avg1);printf("第二个班的平均成绩为:%.2lf\n", avg2);return 0;
}//10、定义一个函数,实现对字符串的逆序打印。
#include <stdio.h>
#include <string.h>void reversePrint(char *str) {int length = strlen(str);for (int i = length - 1; i >= 0; i--) {printf("%c", str[i]);}printf("\n");
}int main() {char str[100];printf("输入一个字符串:");scanf("%s", str);printf("原有字符串:%s\n", str);printf("逆序后的字符串:");reversePrint(str);return 0;
}//11、从键盘为a[5][2]整型数组输入10个整数,
//调用函数找出该二维数组当中的最小值、最大值、平均值,并输出
#include <stdio.h>void findMinMaxAvg(int a[5][2]) {int min = a[0][0];int max = a[0][0];int sum = 0;for (int i = 0; i < 5; i++) {for (int j = 0; j < 2; j++) {if (a[i][j] < min) {min = a[i][j];}if (a[i][j] > max) {max = a[i][j];}sum += a[i][j];}}double avg = (double)sum / 10;printf("二维数组:\n");for (int i = 0; i < 5; i++) {for (int j = 0; j < 2; j++) {printf("%d ", a[i][j]);}printf("\n");}printf("最小值:%d\n", min);printf("最大值:%d\n", max);printf("平均值:%.2lf\n", avg);
}int main() {int a[5][2];printf("请输入10个整数:\n");for (int i = 0; i < 5; i++) {for (int j = 0; j < 2; j++) {scanf("%d", &a[i][j]);}}findMinMaxAvg(a);return 0;
}//12、写一个函数,使给定的3 * 3的二维数组转置,即行列互换。
#include <stdio.h>void transpose(int arr[3][3]) {int temp;for (int i = 0; i < 3; i++) {for (int j = i + 1; j < 3; j++) {temp = arr[i][j];arr[i][j] = arr[j][i];arr[j][i] = temp;}}
}int main() {int arr[3][3] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };printf("转置前的数组:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {printf("%d ", arr[i][j]);}printf("\n");}transpose(arr);printf("转置后的数组:\n");for (int i = 0; i < 3; i++) {for (int j = 0; j < 3; j++) {printf("%d ", arr[i][j]);}printf("\n");}return 0;
}//13、编写函数求区间[100, 500]中所有的回文数。
#include <stdio.h>
int huiwen(int n){int flag = 1;int g, b;g = n % 10;b = n / 100;if (g == b)flag = 1;else{flag = 0;return flag;}
}
int main(){int i;for (i = 100; i <= 500; i++){if (huiwen(i))printf(" %d", i);}
}//14.输入4个学生3门课的成绩,分别用函数实现下列功能:
#include <stdio.h>// 计算所有分数的平均值
float calculateTotalAverage(int scores[][3], int numStudents) {float total = 0;for (int i = 0; i < numStudents; i++) {for (int j = 0; j < 3; j++) {total += scores[i][j];}}return total / (numStudents * 3);
}// 计算每个学生的平均分
void calculateStudentAverages(int scores[][3], int numStudents) {printf("每个学生的平均分:\n");for (int i = 0; i < numStudents; i++) {float average = 0;for (int j = 0; j < 3; j++) {average += scores[i][j];}average /= 3;printf("学生 %c 的平均分为 %.2f\n", 'A' + i, average);}
}// 计算每门课程的平均分
void calculateSubjectAverages(int scores[][3], int numStudents) {printf("每门课程的平均分:\n");for (int j = 0; j < 3; j++) {float average = 0;for (int i = 0; i < numStudents; i++) {average += scores[i][j];}average /= numStudents;printf("第 %d 门课程的平均分为 %.2f\n", j + 1, average);}
}int main() {int scores[4][3] = {{ 80, 90, 70 },{ 88, 76, 100 },{ 90, 90, 70 },{ 100, 70, 90 }};float totalAverage = calculateTotalAverage(scores, 4);printf("所有分数的平均值为 %.2f\n", totalAverage);calculateStudentAverages(scores, 4);calculateSubjectAverages(scores, 4);return 0;
}