做代练去什么网站安全吗凡科建站靠谱吗
函数经典例题
1、编写一个函数实现该功能:从键盘输入一个字串符, 再输入两个正整数 m 和 n, 输出字符串中从 m 开始, 连续 n 个字符。例如, 输入 abcdefg,2,3,输出 bcd.
#include <stdio.h>
/*作者: zcy日期:功能描述:编写一个函数实现该功能:从键盘输入一个字串符, 再输入两个正整数 m 和 n, 输出字 符串中从 m 开始, 连续 n 个字符。例如, 输入 abcdefg,2,3,输出 bcd.思路:1. 键盘输入一个字串符, 再输入两个正整数 m 和 n2. 截取从 m 开始, 连续 n 个字符 --char *Sub_String(char *ch,int m,int n);3. 输出
*/
char *Sub_String(char *ch,int m,int n);
int main()
{printf("请输入一个字符串:\n");char ch[1024] = {0};scanf("%s",ch);printf("请输入开始位置及截取个数:\n");int m=0,n=0;scanf("%d%d",&m,&n);char *p = Sub_String(ch,m,n);printf("%s\n",p);return 0;
}/*函数名称:Sub_String函数功能:截取字符串函数参数: ch -- 截取的字符串m -- 从m开始截取n -- 截取的字符个数函数返回值:返回截取后的字符串首地址
*/
char *Sub_String(char *ch,int m,int n)
{static char str[1024] = {0};int j = 0;for(int i = m-1;i<(m+n-1);i++){str[j] = ch[i];j++;}return str;
}
2、一个皮球从 100 米高度自由落下,每次落地后反弹回原高度的一半再落下,再反弹。求当它第 n 次落地式时,共经过了多少米。
#include <stdio.h>
/*作者: zcy日期:功能描述:一个皮球从 100 米高度自由落下,每次落地后反弹回原高度的一半再落下,再反弹。求当 它第 n 次落地式时,共经过了多少米思路:1.输入落地的次数2.计算共经过多少米 -- sum3.打印
*/
float Height_Sum(int n);
int main()
{printf("请输入落地的次数:");int n = 0;scanf("%d",&n);float sum = Height_Sum(n);printf("sum = %.2f\n",sum);return 0;
}/*函数名称: Height_Sum函数功能: 落地时经过的高度函数参数: n -- 落地的次数函数返回值:返回高度和
*/float Height_Sum(int n)
{float h = 100;float sum = 0;for(int i = 1;i<=n;i++){sum+=2*h;h /=2;}sum -= 100;return sum;
}
3、写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,两个整数由键盘输入。
#include <stdio.h>
/*作者: zcy日期:功能描述:写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并 输出结果,两个整数由键盘输入。思路:1. 两个整数由键盘输入2. 求两个整数的最大公约数 -- max3. 求两个整数的最小公倍数 -- min4. 输出
*/
int max(int m,int n);
int min(int m,int n);
int main()
{printf("请输入两个正整数:\n");int m = 0,n=0;scanf("%d%d",&m,&n);int a = max(m,n);int b = min(m,n);printf("a = %d\n",a);printf("b = %d\n",b);return 0;
}/*函数名称:max函数功能:最大公约数函数参数:m,n -- 两个正整数函数返回值:最大公约数
*/int max(int m,int n)
{int a = 0;for(int i = 1;i<=m;i++){if(m%i == 0 && n % i ==0){a = i;}}return a;
}/*函数名称:min函数功能:最小公倍数函数参数:m,n -- 两个正整数函数返回值:最小公倍数
*/int min(int m,int n)
{return m*n/max(m,n);
}
6、有五个人坐在一起,问第 5 个人多少岁?他说比第 4 个人大 2 岁。问第 4 个人岁数。他说比第3 个人大 2 岁。问第 3 个人,又说比第 2 个人大 2 岁。问第 2 个人,说比第一个人大 2 岁。最后问第一个人,他说是 10 岁。请问第 5 个人多大?
int f(int n);int main()
{printf("第 5 个人%d岁\n",f(5));return 0;
}int f(int n)
{ if(n==1){return 10;}return f(n-1)+2;}
5、使用递归实现一个十进制数转二进制
#include <stdio.h>
/*作者: zcy日期:功能描述:使用递归实现一个十进制数转二进制
*/
void s_to_e(int n);
int main()
{s_to_e(10);return 0;
}void s_to_e(int n)
{if(n == 0){return;}int a = n%2;n/=2;s_to_e(n);printf("%d",a);}