函数

函数

说明

一个C程序由一个或多个程序模块组成,每一个程序模块作为一个源程序文件。对较大的程序,一般不希望把所有内容全放在一个文件中,而是将他们分别放在若干个源文件中,再由若干源程序文件组成一个C程序。这样便于分别编写、分别编译,提高调试效率。一个源程序文件可以为多个C程序公用。

定义

无参函数

类型标识符 函数名()

{

申明部分

语句部分

}

有参函数

类型标识符 函数名(形式参数表列)//在调用时可以使用实参;

{

声明部分

语句部分

}

数据传递

在不同的函数之间传递数据,可T以使用的法: 1.参数:通过形式参数和实际参数 2.返回值:用return语句返回计算结果

3.全局变量:外部变量

eg: 函数数据传递;

#include "stdio.h"
int main()
{
   int max (int x,int y);//int max表示函数返回的什么类型的值
   int a,b,c;
   scanf("%d%d",&a,&b);
   max(a,b);
   printf("%d",c);
}
int max (int x,int y)
{
   int d;
   x>x :y;
   return (d);
}

不加类型标识符一律按照int型处理

调用方式

  1. 函数语句 把函数调用作为一个语句, 如printstar(),这时不要求函数带回值,只要求函数完成一定的操作。

    1. 函数表达式 函数出现在一一个表达式中,这种表达式称为函数表达式。这时要求函数带回一个确定的值以参加表达式的运算。 3. 函数参数 函数调用作为一个函数的实参。例如:m= max (a,max(b,c)) ; 其中max(b,c )是一次函数调用,它的值作为max另一次调用的实参。m的值是a、b、c三者中的最大者。又如: printf ("%d", max (a,b));也是把max( a, b )作为printf函数的一一个参数。

例题

1.自己实现pow()函数并尝试验证

#include "stdio.h" 
int main()
{
   double xow (double x, double y);
   double a,b,c;
   scanf("%lf%lf",&a,&b);
   xow (a,b);
   printf("%lf",c);
  
}
double xow (double x ,double y)
{
   double j=x;
   int i;
   for (i=1;i<y;i++)//while(--y)也可以;
  {
       *= j;
  }
   return(x);
}

2.猜想下sqrt(函数的原理并尝试编程. (暂时只要求整型数据)

#include "stdio.h"
int main()
{
   int a,b,i,j;
   a=0;
   printf("请输入数字:");
   scanf("%d",&b);
   while(a*a!=b)
  {
   a++;
   if(a*a>b)
  {
       printf("该数没有平方根");
       goto A ;
  }
  }
   printf("%d的平方根为%d",b,a);
   A:;
}

3.编写一个用来统计输入的各个数字、空白符(空格、制表符、换行符)以及所以其他字符出现次数的程序。分别存储在变量num[ 10],blank, others里边并打印出来...

#include "stdio.h"
#include "math.h"
int main()
{
   int a=0,b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,m=0,n=0,p=0,other=0;
   char k;
   while (1)
  {
       k=getchar();
       if(k!=EOF)
      {
           if(k==|| == 32 || k==10)
          {
               switch(k)
              {
                   case 9 :m++;break;
                   case 32:n++;break;
                   case 10:p++;break;
              }
          }
           if(k>=48 && k<=57)
          {
               switch(k)
              {
                   case 48 :a++;break;
                   case 49 :b++;break;
                   case 50 :c++;break;
                   case 51 :d++;break;
                   case 52 :e++;break;
                   case 53 :f++;break;
                   case 54 :g++;break;
                   case 55 :h++;break;
                   case 56 :i++;break;
                   case 57 :j++;break;
                   
              }
          }
           other++;
      }   
       else
          {
               int num[10]={a,b,c,d,e,f,g,h,i,j},blank[3]={m,n,p},q;
               printf("num=");
               for(q=0;q<10;q++)
              {
                   printf("%d",num[q]);
              }
               printf("\nblank:");
               for(q=0;q<3;q++)
              {
                   printf("%d",blank[q]);
              }
               printf("\n");
               printf("other={%d}",other-(a+b+c+d+e+f+g+h+i+j+m+n+p));
               break;
          }   
  }   

}

 

补充

EOF 为退出键 即f6;

posted @ 2021-11-02 15:49  eliotJones  阅读(218)  评论(0)    收藏  举报