您的位置:首页 > 编程语言 > C语言/C++

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

2015-07-02 11:29 513 查看
返回:贺老师课程教学链接

【项目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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: