c语言 一个二维数组 如何设定[0][b]=0,[a][0]=0 而不使得所有数据都为零

代码如下#include<stdio.h>#include<conio.h>#definenote4#definetime10#definek1.0#definec2.0... 代码如下
#include <stdio.h>
#include <conio.h>
#define note 4
#define time 10
#define k 1.0
#define c 2.0
#define p 5.0
#define t 0.1
#define x 0.33

void main()
{
float r=(k*t)/(c*p*x*x);
float temp[note][time]={0};

for(int a=0;a<note;a++)
{
temp[a][0]=0;
}
//就是这里 我想设置[0][b]=0,[a][0]=0 可是这个代码出来后全都是零 除了[note-1][b]=100 我猜想问题出在重复定义了temp[a][0]=0;temp[0][b]=0;但是不会改 求大神指教。。。

for(int b=0;b<time;b++)
{
temp[0][b]=0;
temp[note-1][b]=100;
}//边界条件(T(1.0,t)=100)

for(int j=1;j<=time;j++)
{
for(int i=1;i<=note-2;i++)
{
temp[i][j]=r*(temp[i+1][j-1]-2*temp[i][j-1]+temp[i-1][j-1])+temp[i][j-1];
}
}//运算公式

printf("There are %d note\nthe temp of the notes is((note,time)):\n",note,time);
for(int m=0;m<=note-1;m++)
{
for(int n=0;n<time;n++)
{

printf("(%d,%d)=%.2f\n",m,n,temp[m][n]);
}
printf("\n");
}
展开
 我来答
孟戈大师
推荐于2016-02-20 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:173
采纳率:100%
帮助的人:88.1万
展开全部

不知你用的什么编译器,不是VC,在VC中不允许中间声明变量,只能在函数开始时声明变量。有的编译器的C版本可以在中间定义变量。


#include <stdio.h>

#include <conio.h>

#define note 4 

#define time 10

#define k 1.0

#define c 2.0

#define p 5.0

#define t 0.1

#define x 0.33


void main()

{

float r=(k*t)/(c*p*x*x);

float temp[note][time]={0};

int a,b,j,m,i,n;

for(a=0;a<note;a++)

{

temp[a][0]=0;

}

    //就是这里 我想设置[0][b]=0,[a][0]=0 可是这个代码出来后全都是零 除了[note-1][b]=100 我猜想问题出在重复定义了temp[a][0]=0;temp[0][b]=0;但是不会改 求大神指教。。。


for(b=0;b<time;b++)

{

temp[0][b]=0;

temp[note-1][b]=100;

}//边界条件(T(1.0,t)=100)


for(j=1;j<=time;j++)

{

for(i=1;i<=note-2;i++)

{

temp[i][j]=r*(temp[i+1][j-1]-2*temp[i][j-1]+temp[i-1][j-1])+temp[i][j-1];

}

}//运算公式


printf("There are %d note\nthe temp of the notes is((note,time)):\n",note,time);

for(m=0;m<=note-1;m++)

{

for(n=0;n<time;n++)

{

printf("(%d,%d)=%.2f\n",m,n,temp[m][n]);

}

printf("\n");

}

system("pause");

}

我的结果如下没看出什么问题

更多追问追答
追问
问题在于 2。0 3。0的值 不是0啊
追答
for(b=0;b<time;b++)
{
temp[0][b]=0;
temp[note-1][b]=100;
}//边界条件(T(1.0,t)=100
temp[note-1][b]=100;当b=0这里temp[note-1][0]=100;已经又赋值了
temp[i][j]=r*(temp[i+1][j-1]-2*temp[i][j-1]+temp[i-1][j-1])+temp[i][j-1];
Triane
2013-08-21 · 超过16用户采纳过TA的回答
知道答主
回答量:82
采纳率:0%
帮助的人:52.2万
展开全部
float temp[note][time]={0};初始化你都为0了,后面你还赋值为0,,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式