个人网站需不需要备案,查询网 域名查询,立陶宛与俄罗斯最新消息,女生学软件工程后悔了目录
第 21 例
第 22 例
第 23 例
第 24 例
第 25 例
第 26 例
第 27 例
第 28 例
第 29 例
第 30 例 第 21 例
程序源码#xff1a;
/*
题目#xff1a;猴子吃桃问题#xff1a;猴子第一天摘下若干个桃子#xff0c;当即吃了一半#xff0c;还不过瘾#xf…目录
第 21 例
第 22 例
第 23 例
第 24 例
第 25 例
第 26 例
第 27 例
第 28 例
第 29 例
第 30 例 第 21 例
程序源码
/*
题目猴子吃桃问题猴子第一天摘下若干个桃子当即吃了一半还不过瘾又多吃了一个。
第二天早上又将剩下的桃子吃掉一半又多吃了一个。以后每天早上都吃了前一天剩下的一半多一个。
到第10天早上想再吃时见只剩下一个桃子了。求第一天共摘了多少桃子。程序分析采取逆向思维的方法从后往前推断。1) 设x1为前一天桃子数设x2为第二天桃子数 则x2x1/2-1, x1(x21)*2x3x2/2-1, x2(x31)*2以此类推 x前(x后1)*22) 从第10天可以类推到第1天是一个循环过程。
*/#include stdio.h
#include stdlib.hint main()
{int day, x1 0, x2;day9;x21;while(day0){x1(x21)*2; // 第一天的桃子数是第2天桃子数加1后的2倍x2x1;day--;}printf(第一天共摘了 %d 个桃子。\n,x1);printf (\n);return 0;
}
程序运行结果 第 22 例
程序源码
/*
题目两个乒乓球队进行比赛各出三人。
甲队为a,b,c三人乙队为x,y,z三人。已抽签决定比赛名单有人向队员打听比赛的名单。
a说他不和x比c说他不和x,z比请编程序找出三对赛手的名单。程序分析详见下面的代码。
*/#include stdio.h
#include stdlib.hint main()
{char i,j,k;for(ix;iz;i){for(jx;jz;j){if(i!j){for(kx;kz;k){if(i!kj!k){if(i!xk!xk!z){printf(三对赛手的名单为\na--%c\nb--%c\nc--%c\n,i,j,k);}}}}}}return 0;
}
程序运行结果 第 23 例
程序源码
/*
题目打印出如下图案菱形。*********
****************程序分析先把图形分成两部分来看待前四行一个规律后三行一个规律利用双重for循环第一层控制行第二层控制列。
*/#include stdio.hint main()
{int i,j,k;for(i0;i3;i){for(j0;j2-i;j){printf( );}for(k0;k2*i;k){printf(*);}printf(\n);}for(i0;i2;i){for(j0;ji;j){printf( );}for(k0;k4-2*i;k){printf(*);}printf(\n);}return 0;
}
程序运行结果 第 24 例
程序源码
/*
题目有一个分数数列如下2/13/25/38/513/821/13...求出这个数列的前20项之和。程序分析重点是抓住分子与分母的变化规律。
*/#include stdio.hint main()
{int i,t;float sum0;float a2,b1;for(i1;i20;i){sumsuma/b;ta;aab;bt;}printf(这个数列的前20项之和等于 %9.6f\n,sum);return 0;
}
程序运行结果 第 25 例
程序源码
/*
题目求1!2!3!...20!的值。程序分析此程序只是把累加变成了累乘。
*/#include stdio.hint main()
{int i;long double sum,mix;sum0,mix1;for(i1;i20;i){mixmix*i;sumsummix;} printf(1!2!3!...20! %lf\n,sum);return 0;
}
程序运行结果 第 26 例
程序源码
/*
题目利用递归方法求5!。程序分析递归公式f(n)f(n-1)*n
*/#include stdio.hint main()
{int i;int fact(int);for(i0;i6;i){printf(%d! %d\n,i,fact(i));}return 0;
}int fact(int j)
{int sum;if(j0){sum1;}else{sumj*fact(j-1);}return sum;
}程序运行结果 第 27 例
程序源码
/*
题目利用递归函数调用方式将所输入的5个字符以相反顺序打印出来。程序分析详见下面的代码。
*/#include stdio.hint main()
{int i5;void palin(int n);printf(请输入5个字符:);palin(i);printf(\n);return 0;
}void palin(int n)
{char next;if(n1){nextgetchar();printf(相反顺序输出结果是:);putchar(next);}else{nextgetchar();palin(n-1);putchar(next);}
}
程序运行结果 第 28 例
程序源码
/*
题目编写一个程序计算两个矩阵的叉乘并输出结果。程序分析详见下面的代码。
*/#include stdio.h#define N 3
#define M 4int main ()
{int a[N][M],b[M][N]; //定义二维整型数组a和b。int i,j,k,s;printf (请输入二维整型数组a的12个元素\n);//利用双重循环通过键盘给二维整型数组a赋值。for (i0;iN;i){for (j0;jM;j){printf (a[%d][%d],i,j);scanf (%d,a[i][j]);}}printf (\n请输入二维整型数组b的12个元素\n);//利用双重循环通过键盘给二维整型数组a赋值。for (i0;iM;i){for (j0;jN;j){printf (b[%d][%d],i,j);scanf (%d,b[i][j]);}}//输出二维整型数组a。printf (\n二维整型数组a\n);for (i0;iN;i){for (j0;jM;j){printf (%-5d,a[i][j]);}printf (\n);}//输出二维整型数组b。printf (\n二维整型数组b\n);for (i0;iM;i){for (j0;jN;j){printf (%-5d,b[i][j]);}printf (\n);}//计算 s a×b 的值并输出 s 的值。printf (\n“二维整型数组a×二维整型数组b”的结果是\n);for (i0;iN;i){for (j0;jN;j){for (ks0;kM;k){sa[i][k]*b[k][j];}printf (%-10d,s);}printf (\n);}printf (\n);return 0;
}程序运行结果 第 29 例
程序源码
/*
题目给一个不多于5位的正整数求它是几位数并逆序打印出各位数字。程序分析分解出每一位数详见下面的代码。
*/#include stdio.hint main( )
{long a,b,c,d,e,x;printf(请输入一个不多于 5 位的正整数);scanf(%ld,x);ax/10000; //分解出万位bx%10000/1000; //分解出千位cx%1000/100; //分解出百位dx%100/10; //分解出十位ex%10; //分解出个位if (a!0){printf(该数字为 5 位数,逆序输出为%ld%ld%ld%ld%ld\n,e,d,c,b,a);}else if(b!0){printf(该数字为 4 位数,逆序输出为%ld%ld%ld%ld\n,e,d,c,b);} else if(c!0){printf(该数字为 3 位数,逆序输出为%ld%ld%ld\n,e,d,c);} else if(d!0){printf(该数字为 2 位数,逆序输出为%ld%ld\n,e,d);} else if(e!0){printf(该数字为 1 位数,逆序输出为%ld\n,e);}return 0;
}
程序运行结果 第 30 例
程序源码
/*
题目输入一个5位数判断它是不是回文数。个位与万位相同十位与千位相同的5位数是回文数比如12321是回文数。程序分析分解出每一位数详见下面的代码。
*/#include stdio.hint main( )
{long ge,shi,qian,wan,x;printf(请输入一个 5 位数);scanf(%ld,x);wanx/10000; //分解出万位qianx%10000/1000; //分解出千位shix%100/10; //分解出十位gex%10; //分解出个位if (gewanshiqian){ //个位等于万位并且十位等于千位printf(%d 是回文数\n,x);}else{printf(%d 不是回文数\n,x);}return 0;
}
程序运行结果