题目利用函数和循环已知a=1,b=2并且b被static修饰,c=3,条件c=c+2,b=b+1,求出a+b+c的五次结果
函数段
#include<stdio.h>
int sum(int a)
{
int c = 3;
static int b = 2;
c += 2;
b += 1;
return (a + b + c);
}
循环段
for (i = 0; i < 5; i++)
{
printf("%d\n", sum(a));
}
总代码段
#include<stdio.h>
int sum(int a)
{
int c = 3;
static int b = 2;
c += 2;
b += 1;
return (a + b + c);
}
int main()
{
int a = 1;
int i;
for (i = 0; i < 5; i++)
{
printf("%d\n", sum(a));
}
}
结果
纵观代码全部,通过循环来实现打印出五次结果,并且通过sum创建函数,使得在函数中用static修饰b使其每一次b的值都不一样,第一次b的值为3,但是因为被static修饰使其程序第一次结束时,b的值依然是3保留不变,使得下一次计算使用前一次的结果继续计算,而a和c因为没有被static修饰因此a和c的值每次都会被重置,因此五次的结果为9,10,11,12,13