C语言谭浩强第四版例题(8)

2018-12-29 17:54

例7.7 用递归方法求n!。 编写程序:

#include int main()

{ int fac(int n); int n; int y;

printf(\ scanf(\ y=fac(n);

printf(\ return 0; }

int fac(int n) { int f; if(n<0) printf(\ else if(n==0||n==1) f=1;

else f=fac(n-1)*n; return(f); }

例7.8 Hanoi(汉诺)塔问题。古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个老和尚想把这64个盘子从A座移到C座,但规定每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座。要求编程序输出移动一盘子的步骤。 编写程序:

#include int main() {

void hanoi(int n,char one,char two,char three); // 对hanoi函数的声明 int m;

printf(\ scanf(\

printf(\ hanoi(m,'A','B','C'); }

void hanoi(int n,char one,char two,char three) // 定义hanoi函数 // 将n个盘从one座借助two座,移到three座 {

void move(char x,char y); // 对move函数的声明 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) // 定义move函数 {

printf(\ }

例7.9 输入10个数,要求输出其中值最大的元素和该数是第几个数。 编写程序:

#include int main()

{int max(int x,int y); int a[10],m,n,i;

printf(\ for(i=0;i<10;i++) scanf(\ printf(\

for(i=1,m=a[0],n=0;i<10;i++)

{ if (max(m,a[i])>m) // 若max函数返回的值大于m {m=max(m,a[i]); // max函数返回的值取代m原值 n=i; // 把此数组元素的序号记下来,放在n中 } }

printf(\ }

int max(int x,int y) { return(x>y?x:y); }

例7.10 有一个一维数组score,内放10个学生成绩,求平均成绩。 编写程序:

#include int main()

{ float average(float array[10]); // 函数声明 float score[10],aver; int i;

printf(\ for(i=0;i<10;i++)

scanf(\ printf(\

aver=average(score); // 调用average函数 printf(\ return 0; }

float average(float array[10]) // 定义average函数 {int i;

float aver,sum=array[0]; for(i=1;i<10;i++)

sum=sum+array[i]; // 累加学生成绩 aver=sum/10; return(aver); }

例7.11 有两个班级,分别有35名和30名学生,调用一个average函数,分别求这两个班的学生的平均成绩。 编写程序:

#include int main()

{float average(float array[ ],int n); float score1[5]={98.5,97,91.5,60,55};

float score2[10]={67.5,89.5,99,69.5,77,89.5,76.5,54,60,99.5}; printf(\ printf(\ return 0; }

float average(float array[ ],int n) {int i;

float aver,sum=array[0]; for(i=1;i

sum=sum+array[i]; aver=sum/n; return(aver); }

例7.12用选择法对数组中10个整数按由小到大排序。 编写程序:

#include int main()

{void sort(int array[],int n); int a[10],i;

printf(\ for(i=0;i<10;i++)

scanf(\ sort(a,10);

printf(\ for(i=0;i<10;i++) printf(\ printf(\ return 0; }

void sort(int array[],int n) {int i,j,k,t;

for(i=0;i

for(j=i+1;j例7.13 有一个3×4的矩阵,求所有元素中的最大值。 编写程序:

#include int main()

{ int max_value(int array[][4]);

int a[3][4]={{1,3,5,7},{2,4,6,8},{15,17,34,12}}; printf(\ return 0; }

int max_value(int array[][4]) {int i,j,max;

max=array[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++)

if(array[i][j]>max)max=array[i][j]; return (max); }


C语言谭浩强第四版例题(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:北京理工大学汇编上机试题和代码

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: