C语言基础练习7

来源:互联网 发布:java shell 回写 编辑:程序博客网 时间:2024/06/05 16:38


1.用递归方法求n!。

#include<stdio.h>int main(){int fac(int n);int n, y;printf("input an integer numbers:");scanf_s("%d", &n);y = fac(n);printf("%d!=%d\n", n, y);    return 0;}int fac(int n){int f;if (n < 0)printf("n<0,data error!");else if (n == 0 || n == 1)f = 1;elsef = fac(n - 1)*n;return(f);}

运行结果:



2.hanoi塔问题,输出移动盘子的步骤

#include<stdio.h>int main(){void hanoi(int n, char one, char two, char three);int m;printf("input the number of diskes:");scanf_s("%d", &m);printf("The step to move %d diskes:\n", m);hanoi(m, 'A', 'B', 'C');    return 0;}void hanoi(int n, char one, char two, char three){void move(char x, char y);if (n == 1)move(one, three);else{hanoi(n - 1, one, three, two);move(one, three);hanoi(n - 1, two, one, three);}}void move(char x, char y){printf("%c-->%c\n", x, y);}
运行结果:



3.输入10个数,输出其中值最大的元素和该数是第几个数

#include<stdio.h>int main(){int max(int x, int y);int a[10], m, n, i;printf("enter 10 integer numbers:");for (i = 0; i < 10; i++)scanf_s("%d", &a[i]);printf("\n");for (i = 0, m = a[0], n = 0; i < 10; i++){if (max(m, a[i]) > m){m = max(m, a[i]);n = i;}}printf("The largest number is %d\nit is the %dth number.\n", m, n + 1);    return 0;}int max(int x, int y){return(x > y ? x : y);}
运行结果:



4.有一个一维数组score,内放10个学生成绩,求平均成绩

#include<stdio.h>int main(){float average(float array[10]);float score[10], aver;int i;printf("input 10 scores:\n");for (i = 0; i < 10; i++)scanf_s("%f", &score[i]);printf("\n");aver = average(score);printf("average score is %5.2f\n", aver);    return 0;}float average(float array[10]){int i;float aver, sum = array[0];for (i = 1; i < 10; i++)sum = sum + array[i];aver = sum / 10;return(aver);}
运行结果:



原创粉丝点击