《C 语言及程序设计》实践参考—— 随便改 返回:贺老师课程教学链接 【项目 3-随便改】保持下面程序主体 for 循环部分不变,用你能想到的办法修改程序,使下面程序的输出的 a 每次都能变化,输出 1 2 3 4 #include<stdio.h>
void change(int a)
{
a=a+1;
}
int main()
{
int a=0;
int n=4;
int i=0;
for(i=0; i<n; i++)
{
change(a);
printf("%d ",a);//如何使这里 a 的值,每次都发生改变
}
return 0;
}
[参考解答] 改法 1:a 作为全局变量,change 为无参函数 #include<stdio.h>
int a=0; //*
void change() //*
{
a=a+1;
}
int main()
{
int n=4;
int i=0;
for(i=0; i<n; i++)
{
change(); //*
printf("%d ",a);//如何使这里 a 的值,每次都发生改变
}
return 0;
}
改法 2:change 函数改为传地址
#include<stdio.h>
void change(int *a)
{
*a=*a+1;
}
int main()
{
int a=0;
int n=4;
int i=0;
for(i=0; i<n; i++)
{
change(&a);
printf("%d ",a);//如何使这里 a 的值,每次都发生改变
}
return 0;
}
改法 3:让 change 函数返回值 #include<stdio.h>
int change(int a)
{
a=a+1;
return a;
}
int main()
{
int a=0;
int n=4;
int i=0;
for(i=0; i<n; i++)
{
a = change(a);
printf("%d ",a);//如何使这里 a 的值,每次都发生改变
}
return 0;
}
改法 4:让 a 作全局变量,change 为无参函数 #include<stdio.h>
int a=0;
void change()
{
a=a+1;
}
int main()
{
int n=4;
int i=0;
for(i=0; i<n; i++)
{
change();
printf("%d ",a);//如何使这里 a 的值,每次都发生改变
}
return 0;
}
改法 5:a 作为 change 函数中的静态变量 #include<stdio.h>
int change()
{
static int a=0;
a=a+1;
return a;
}
int main()
{
int n=4;
int i=0;
for(i=0; i<n; i++)
{
printf("%d ",change());//如何使这里 a 的值,每次都发生改变
}
return 0;
}