注册 登录
编程论坛 Python论坛

发现一个事,不太理解。

yangfanconan 发布于 2011-01-16 18:31, 988 次点击
程序代码:

#include "stdafx.h"
#
include<stdio.h>
#
include<stdlib.h>
#
define N 10
int main()
{
unsigned int i,j,k;//i是行数,j是每行元素数。
unsigned int b,c;
unsigned int d=1;
for(i=0;i<N;i++)
{
for(j=N;j>i;j--)
printf("  ");
for(j=0;j<=i;j++)
{
b=c=1;//这里开始对杨辉3角内部每行元素与其行数,列位的关系进行运算。
if(j>=1)
{
for(k=i-j+1;k<=i;k++)
b*=k;
for(k=1;k<=j;k++)
c*=k;
d=b/c;//到这里运算结束
}
printf("%4d",d);//输出
}
printf("\n");
}
system("pause");
}
为什么给D一个初始值就能没问题呢?而没有初始值就会出现问题呢?
vs2010编译。
5 回复
#2
Kabie2011-01-20 13:34
....这不是废话么。。赋值之前就输出了。。

……C里变量赋初值要养成习惯。。。
#3
yangfanconan2011-01-20 17:17
回复 2楼 Kabie
这个我不理解就是这个问题。但不是你说的那样。
#4
Kabie2011-01-21 07:37
。。。话说为啥发在Python这边……

j=0
if(j>=1)整段就跳过了,直接printf("%4d",d)怎么能不出错。。。
C语言不要求对新变量赋值,分配内存之后变量里还是原先的内容,具体是什么是无法保证的。。。
#5
yangfanconan2011-01-21 09:31
因为python没人发帖啊。凑凑人气。
#6
lucky5635912011-02-01 17:16
变量初始化
1