C语言中一个完整的函数由函数首部和函数体构成,而且定义函数时两者都是必不可少的。函数定义的一般形式如下:类型标识符 函数名(形参表列) // 这是函数首部 // 以下{ }内的是函数体 { 说明部分执行部分 } 举例说明如下: // 定义一个不带返回值的函数 // 函数功能:输出形参的值 void fun(int a, int b) { printf("%d, %d\n", a, b); } // 定义一个带返回值的函数 // 函数功能:返回2个整数数的最大值 int fun(int a, int b) { return ab ? a : b; }
创新互联建站专注于东坡网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供东坡营销型网站建设,东坡网站制作、东坡网页设计、东坡网站官网定制、微信平台小程序开发服务,打造东坡网络公司原创品牌,更为您提供东坡网站排名全网营销落地服务。
在C语言中,一个标准的函数定义语句块必须包含函数返回值的类型标识符、函数名、形参类型及数量、函数体、返回值表达式。如果函数返回值类型为 void (即无返回值),则在两个大括号之间不能写带有返回值表达式的 return 语句,否则编译器就会报错。你写的 test 函数返回值类型为 void,而你在函数定义语句块内写下了 return 语句,编译器自然会报错了。
你可以将这个函数修改为以下形式:
int test(int n)
{
int m = n / 2;
return m;
}
1、编写函数func1,实现求两个数的最大公约数。
1:
int
fuc1(int
a,int
b)
{
if(a%b==0)
return
b;
return
fuc(b,a%b);
}
int
t=fuc1(a,b);//t为a,b最大公约数。
2、编写函数func2,实现求两个自然数之间的奇数的和。
2
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==1)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t为a,b间所有奇数之和。
3、编写函数func1,实现求一个自然数的阶乘(要求用递归的方法)。
int
fuc1(int
k)
{
if(k==1)
return
1;
return
k*fuc(k-1);
}
int
t=fuc1(a);//t为a的阶乘.
4、编写函数func2,实现求两个自然数之间的偶数的和。
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==0)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t为a,b间所有偶数之和。
#include stdio.h
void paixu(int a[], int n);
int main()
{
int a[10];
int i, j, t;
int x;
printf("请输入10个数据:\n");
for (i = 0; i 10; i++)
scanf("%d", a[i]);
paixu(a, 10);
}
void paixu(int a[], int n)
{
int i, j, t;
for (i = 0; i n; i++)
for (j = 0; j n - 1 - i; j++)
if (a[j] a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
for (i = 0; i n; i++)
printf("%-4d", a[i]);
printf("\n");
}
思路:用数组操作,将自然数先求出他的长度,再将它换成对应位的权积存入数组中,然后累加得到结果。
#includeiostream
using
namespace
std;
#includemath.h
int
fun(int
n)
{
int
a[10],cnt(1),m(n),k(0);
while(m10)
//while循环求数字的长度,看是几位数
{
cnt++;
m/=10;
}
for(int
i=0;icnt;i++)
//将每一位和点到循序后的位权乘积存入数组中,并球累加和
{
int
s=pow(10,i+1);
int
t=pow(10,i);
int
r=pow(10,cnt-i-1);
a[i]=(n%s)/t*r;
k+=a[i];
}
return
k;
}
int
main()
{
coutfun(23456);
//用了多组数测试均成功!!!
return
0;
}