Yangleaa 2022-05-11 21:39 采纳率: 100%
浏览 127
已结题

c语言输出杨辉三角,行数过大时出现错误

在行数超过13行时,后面的数据开始出现错误。

img


#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{ int up = 1, under = 1;
int data[200][200];
int size;
printf("请输入杨辉三角的行数:");
scanf("%d",&size);
for (int i = 0; i < size; i++)// 获取杨辉三角中每一行
{
for (int j =0; j <=i; j++)//获取每行中的每一个元素的值
{
for (int z = 0; z < j; z++)//C(i,j)=j(j-1)../i!== up/under(设的变量)
{
under = under * (z+1);
}
for (int m = 0; m <j; m++)
{
up = up * (i - m);
}
data[i][j] = up / under;
up = 1, under = 1;//重置
}
}
for (int i = 0; i < size; i++)//输出结果
{
for (int j = 0; j <=i; j++)
{
printf("%d ", data[i][j]);
}
printf("\n");
}
return 0;
}

  • 写回答

2条回答 默认 最新

  • 丨秋水丨 2022-05-11 21:54
    关注

    img

    中间数据up在第13行之以后就存在溢出的情况,简单点的改法是把int换成long long,好一点的改法是修改算法,就是line[i][j] = line[i-1][j-1] + line[i-1][j];

    #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    int main()
    {
        long long up = 1, under = 1;
        long long data[200][200];
        long long size;
        printf("请输入杨辉三角的行数:");
        scanf("%lld", &size);
        for (long long i = 0; i < size; i++)// 获取杨辉三角中每一行
        {
            for (long long j = 0; j <= i; j++)//获取每行中的每一个元素的值
            {
                for (long long z = 0; z < j; z++)//C(i,j)=j(j-1)../i!== up/under(设的变量)
                {
                    under = under * (z + 1);
                }
                for (long long m = 0; m < j; m++)
                {
                    up = up * (i - m);
                }
                data[i][j] = up / under;
                up = 1, under = 1;//重置
            }
        }
        for (long long i = 0; i < size; i++)//输出结果
        {
            for (long long j = 0; j <= i; j++)
            {
                printf("%d ", data[i][j]);
            }
            printf("\n");
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多