《C语言及程序设计》实践参考——随便改

来源:互联网 发布:有没有像淘宝联盟一样 编辑:程序博客网 时间:2024/06/07 11:20

返回:贺老师课程教学链接

【项目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;}
0 0
原创粉丝点击