【每天例题】蓝桥杯 C语言 杨辉三角形
蓝桥杯 C语言 杨辉三角形
题目

、
题目要求

由分析可得:
杨辉三角形组成:
a[i][1]=a[i][i]=1;
a[i+1][j+1]=a[i][j]+a[i][j+1] //i>=2,j>=2
代码(该代码只能通过40%,可能为二维数组存放空间不够)
#include<stdio.h>
int main()
{
int a[100][100];
int i,j,count=0;
int n;
scanf("%d",&n);
for(i=0;i<100;i++)//建立杨辉三角形
{
for(j=0;j<=i;j++)
{
if(i==j||j==0)
{
a[i][j]=1;//每一行的第一个及对角线位置的数字都为1
}
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(i=0;i<100;i++)//计算数第一次出现的位置
{
for(j=0;j<=i;j++)
{
count++;
if(a[i][j]==n)
{
goto end;//当我们找到数第一次出现的位置时,直接跳出一整个大循环
}
}
}
end:
printf("%d",count);
return 0;
}
C语言中,goto与break的用法及区别:
goto语句在两种情况下非常适用:
1.跳出多重循环。
2.跳向共同的出口位置,进行退出前的处理操作。
但是:过多的使用goto语句及其标识符会导致程序的可读性变差,使得程序的结构混乱不堪,很难去理解程序执行的什么功能。
使用goto语句时只允许在一个单入口单出口的模块内向前跳转,尽量不要向后跳转,更不要出现跳转交叉的情况。
C语言中break的用法有两种:
1.出现在循环内时,循环终止,且程序流将继续执行紧接着循环后的语句。
2.终止switch语句中的一个case。
注意:1.如果出现在嵌套循环(即一个循环内嵌套另一个循环),break语句会终止最内层的循环,跳到上层循环。
2.如果循环中有if函数,则直接跳出 if语句重新回到循环中。如果 if 语句嵌套,则返回上一级语句。
运行结果


浙公网安备 33010602011771号