c语言例题之函数

本文通过多个示例展示了C语言中函数的运用,包括比较两个数字并返回最小值、计算阶乘(递归和非递归)、找出数组中的最大值、计算两个数的谐均值、实现斐波纳契数列以及字符输出和二维数组的行列转换。这些实例涵盖了基础函数的定义、调用和递归应用。
摘要由CSDN通过智能技术生成



#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//要求从键盘接收两个数字,利用函数比较其值的大小,并输出最小值
/*int main(void) {
 int min(int a, int b);
 int a, b;
 printf("请输入两个数:\n");
 fflush(stdout);
 scanf("%d%d", &a, &b);
 printf("两个数中的最小值为:\n%d", min(a, b));
 return EXIT_SUCCESS;
 }
 int min(int a, int b) {
 int t;
 if (a > b) {
 t = b;
 } else {
 t = a;
 }
 return t;
 }*/


//编写一个递归函数,当从键盘接受一个数字后,实现其阶乘的运算
/*int jiecheng(int n) {
 int f;
 if (n < 0) {
 printf("n<0,data error!");
 } else if (n == 0 || n == 1) {
 f = 1;
 } else {
 f = jiecheng(n - 1) * n;
 }
 return (f);
 }
 int main(void) {
 int n, y;
 printf("请输入一个数:\n");
 fflush(stdout);
 scanf("%d", &n);
 y = jiecheng(n);
 printf("%d!=%d\n", n, y);
 return 0;
 }*/


//定义一个含有10个元素的数组,编写一个函数,使其实现输出数组中最大值的运算
/*int max(int x, int y) {
 return (x > y ? x : y);
 }
 int main() {
 int max(int x, int y);
 int a[10], m, n, i;
 printf("请输入10个数:\n");
 fflush(stdout);
 for (i = 0; i < 10; i++) {
 scanf("%d", &a[i]);
 }
 for (i = 1, m = a[0], n = 0; i < 10; i++) {
 if (max(m, a[i]) > m) {
 m = max(m, a[i]);
 n = i;
 }
 }
 printf("这个最大数是%d!\n它是第%d个数!\n", m, n + 1);
 return 0;
 }*/


//编写一个带有两个double参数的函数,计算这两个参数的谐均值。
double calculate(double x,double y );


int main(void)
{
 double a,b;
 printf("请输入两个数:\n");
 fflush(stdout);
 scanf("%lf%lf",&a,&b);
 printf("这两个参数的谐均值为:\n%0.3lf\n",calculate(a,b) );
 return 0;
}
double calculate(double x,double y)
{
 return 1/( (1/x+1/y) / 2 );
}


//编写并测试一个函数Fibonacci(),
//在该函数中使用循环代替递归完成斐波纳契数列的计算。
/*int Fibonacci(int n) ;
int main(void)
{
    int i = 0;
int num=0;
    printf("请输入一个数:\n");
    fflush(stdout);
    scanf("%d",&num);
    printf("斐波纳契数列为:\n");
    for(i=1;i<=num;i++){
        printf("%d\t",Fibonacci(i));
    }
    return 0 ;
}
int Fibonacci(int n)
{
    if(n == 1 || n == 2)
        return 1;
    else
        return Fibonacci(n -1) + Fibonacci( n - 2) ;
}*/


//编写并测试一个函数。函数的三个参数是一个字符和两个数字。字符参数是要输出的字符,
//第一个整数说明了该行中输出字符的个数,第二个字符说明了需要输出的行数。
 /*void chline(char , int , int );
 int main(void)
 {
  int x,y;
  char ch;
  printf("请输入一个字符:\n");
  fflush(stdout);
  scanf("%c",&ch);
  printf("请输入该行中输出字符的个数和 需要输出的行数:\n");
  fflush(stdout);
  scanf("%d%d",&x,&y);
  chline(ch,x,y);
  return 0;
 }
 void chline(char ch, int column, int row)
 {
  int x,y;
  for(y=0; y<row; y++)
  {
   for(x=0; x<column; x++)
    printf("%c",ch);
   printf("\n");
  }
 }*/


//写一个函数,输入一个四位的数字,要求输出这四个数字字符,但每两个数字之间空一空格。
/*int main(void) {


 void insert(char[]);
 char str[80];
 printf("请输入四个数字字符:\n");
 fflush(stdout);
 scanf("%s", str);
 insert(str);
 return 0;
 }
 void insert(char str[]) {
 int i;
 for (i = strlen(str); i > 0; i--) {
 str[2 * i] = str[i];
 str[2 * i - 1] = ' ';
 }
 printf("每两个数字之间空一个空格输出为:\n%s\n",str);
 }*/


//写一个函数,使给定的二维函数进行行列转换,例如3×4,转换成4×3,并输出结果,
//最后将首元素置尾,其他元素前移一位。
/*void x(int a[3][3]) //x是行列互换的函数名
{
int i, j;
printf("行列互换后:\n");
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
printf("%d\t", a[j][i]);
}
printf("\n");
}
}
int main() {
int sum[3][3], i, j;
printf("请输入一个3*3的矩阵数:\n");
fflush(stdout);
for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++) {
scanf("%d", &sum[i][j]);
}
}
x(sum);
return 0;
}*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值