-
分別定義函數求圓的面積和周長。
-
寫一個函數,分別求三個數當中的最大數。
-
寫一個函數,計算輸入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;
}