函数与字符数组
/***********函数*************/
#include <stdio.h>
int power(int m,int n);
/*测试power函数*/
main()
{
int i;
for(i=0;i<10;++i)
printf("%d %d %d\n",i,power(2,i),power(-3,i));
return 0;
}
/*power函数:求底数的n次幂;其中n>=0*/
int power(int base, int n)
{
int i,p;
p = 1;
for(i=1;i<=n;++i)
p = p * base;
return p;
}
#include <stdio.h>
int power(int m,int n);
/*测试power函数*/
main()
{
int i;
for(i=0;i<10;++i)
printf("%d %d %d\n",i,power(2,i),power(-3,i));
return 0;
}
/*power函数:求底数的n次幂;其中n>=0*/
int power(int base, int n)
{
int i,p;
p = 1;
for(i=1;i<=n;++i)
p = p * base;
return p;
}
该函数没什么需要过多解释的地方,简单说一下形参和实参吧。power函数的第一行语句: int power(int base, int n) 声明参数的类型、名字以及该函数返回结果的类型。power函数的参数使用的名字只在power函数内部有效,对其他任何函数都是不可见的:其他函数可以使用与之相同的参数名字而不会引起冲突。变量i与p也是这样:power函数中的i与main函数中的i无关。
我们通常把函数定义中圆括号内列表中出现的变量称为形式参数,而把函数调用中与形式参数对应的值称为实际参数。
/****************************************************/
/********字符数组*********/
#include <stdio.h>
#define MAXLINE 1000 /*允许的输入行的最大长度*/
我们通常把函数定义中圆括号内列表中出现的变量称为形式参数,而把函数调用中与形式参数对应的值称为实际参数。
/****************************************************/
/********字符数组*********/
#include <stdio.h>
#define MAXLINE 1000 /*允许的输入行的最大长度*/
int getline(char line[], int maxline);
void copy(char to[], char from[]);
void copy(char to[], char from[]);
/*打印最长的输入行*/
main()
{
int len; /*当前行长度*/
int max; /*目前为止发现的最长行的长度*/
char line[MAXLINE]; /*当前的输入行*/
char longest[MAXLINE]; /*用于保存最长的行*/
max = 0;
while((len = getline(line,MAXLINE)) > 0)
if(len > max)
{
max = len;
copy(longest, line);
}
if(max > 0) /*存在这样的行*/
printf("%s",longest);
return 0;
/*getline函数:将一行读入到s中并返回其长度*/
int getline(char s[], int lim)
{
int c, i;
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
s[i] = c;
if(c == '\n')
{
s[i] = c;
++i;
}
s[i]='\0';
return i;
}
/*copy函数:将from复制到to;这里假定to足够大*/
void copy(char to[], char from[])
{
int i;
i=0;
while((to[i] = from[i]) != '\0')
++i;
}
}
main()
{
int len; /*当前行长度*/
int max; /*目前为止发现的最长行的长度*/
char line[MAXLINE]; /*当前的输入行*/
char longest[MAXLINE]; /*用于保存最长的行*/
max = 0;
while((len = getline(line,MAXLINE)) > 0)
if(len > max)
{
max = len;
copy(longest, line);
}
if(max > 0) /*存在这样的行*/
printf("%s",longest);
return 0;
/*getline函数:将一行读入到s中并返回其长度*/
int getline(char s[], int lim)
{
int c, i;
for(i=0;i<lim-1 && (c=getchar())!=EOF && c!='\n';++i)
s[i] = c;
if(c == '\n')
{
s[i] = c;
++i;
}
s[i]='\0';
return i;
}
/*copy函数:将from复制到to;这里假定to足够大*/
void copy(char to[], char from[])
{
int i;
i=0;
while((to[i] = from[i]) != '\0')
++i;
}
}