return和exit函数区别及杨辉三角

return和exit的区别

return和exit函数都是正常中断时所调用的函数。
1.exit函数结束的是当前进程/当前程序,在整个程序中,只要调用exit就结束了。

int fun()
{
    printf("now fun started\n");
    printf("\n");
    int arr[10] = { 12, 23, 34, 45, 56, 67, 78, 89, 90, 3 };
    int len = sizeof(arr) / sizeof(arr[0]);
    for (int i = 0; i < len - 1; ++i)
    {
        int temp = i;
        for (int j = i + 1; j < len; ++j)
        {
            if (arr[j] > arr[i])
            {
                temp = j;
            }
        }
        int a = arr[temp];
        arr[temp] = arr[i];
        arr[i] = a;
    }
    //exit(0);
    return 0;
    for (int w = 0; w < len; ++w)
    {
        printf("%d  ", arr[w]);
    }
    printf("now fun ended\n");
}

void main()
{
    printf("now main start\n");
    fun(); 
    int sum = 10;
    for (int i = 1; i < sum; ++i)
    {
        printf("1  ");
        printf("\n");
    }
}

我编写了一个简单的fun函数,分别在该函数中调用eixt(0)和return 0这两句,并在main函数中的最后一个大括号下加断点,发现:
当调用exit(0)时,程序并不在断点处停留,直接退出程序,但是换成return 0 后,程序会运行到断点处停留。
这就是第一条所说的exit直接结束进程。
2.return()是当前函数返回,如果当前函数是main函数,自然也就结束当前进程了,如果不是,就退回到上一层调用。通常在递归调用时,只会使用return函数,而不是exit()函数。


杨辉三角

void main()
{
    int sum = 10;//行数
    int arr[10][10] = { 0 };
    for (int i = 0; i < sum; ++i)//遍历每一行
    {
        for (int k = 0; k < sum - i; ++k)//加入空格,便于观看
        {
            printf("   ");
        }
        arr[i][0] = 1;//每一行的第一个为1
        printf("%6d", arr[i][0]);
        for (int j = 1; j <= i; ++j)//计算每一行的从第二列开始的每个系数
        {

            arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1];
            printf("%6d", arr[i][j]);
        }
        printf("\n");
    }
}

对杨辉三角做一个简单的复习,使用的是二维数组。规律如下:
1.每一行的第一个数字都为0.
2.每一行的元素个数等于改行的行数(行从1开始)。
3.每一行除了第一个数字,其他数字值为上一行该列的值加上一行后退一列值。
1
1 1
1 2 1
1 3 3 1
是这样的规律。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值