求助,c语言中如何使一个变量在某次赋值后保持不变
rt,在c语言环境下如何使一个变量在某次赋值后无法再修改其值,而且这个变量还是二维数组中的元素。我在vs2010编程的时候,老是一些变量的值莫名其妙就变化了,根本没改动过...
rt,在c语言环境下如何使一个变量在某次赋值后无法再修改其值,而且这个变量还是二维数组中的元素。
我在vs2010编程的时候,老是一些变量的值莫名其妙就变化了,根本没改动过也变了。用const定义一个常量保存之后就解决了,但数组的元素无法定义为const啊,而且是部分元素要保持不变,不是全部,怎么办啊?
高手请看这个:
for (i=stax;i<=endex;i++)
for (j=0;j<=n;j++)
{
printf_s("\n please input G[ %d ][ %d ]= ",i,j );
scanf_s("%f",&G[i][j]);
printf_s("\n please input B[ %d ][ %d ]= ",i,j );
scanf_s("%f",&B[i][j]);
};
简单的循环,如果stax与endex为变量,循环后结束值变得乱七八糟,但用const定义为常量则问题解决,为神马? 展开
我在vs2010编程的时候,老是一些变量的值莫名其妙就变化了,根本没改动过也变了。用const定义一个常量保存之后就解决了,但数组的元素无法定义为const啊,而且是部分元素要保持不变,不是全部,怎么办啊?
高手请看这个:
for (i=stax;i<=endex;i++)
for (j=0;j<=n;j++)
{
printf_s("\n please input G[ %d ][ %d ]= ",i,j );
scanf_s("%f",&G[i][j]);
printf_s("\n please input B[ %d ][ %d ]= ",i,j );
scanf_s("%f",&B[i][j]);
};
简单的循环,如果stax与endex为变量,循环后结束值变得乱七八糟,但用const定义为常量则问题解决,为神马? 展开
3个回答
展开全部
变量,如果你之后不重新赋值就不会改变的
如果你要保留某个值,你可以用临时变量保存,例如
int tmp=a[i];
如果你要保留某个值,你可以用临时变量保存,例如
int tmp=a[i];
更多追问追答
追问
高手请看这个:
for (i=stax;i<=endex;i++)
for (j=0;j<=n;j++)
{
printf_s("\n please input G[ %d ][ %d ]= ",i,j );
scanf_s("%f",&G[i][j]);
printf_s("\n please input B[ %d ][ %d ]= ",i,j );
scanf_s("%f",&B[i][j]);
};
简单的循环,单但果stax与endex为变量,循环后结束值变得乱七八糟,但用const定义为常量则问题解决,为神马?
追答
for循环是一个已知次数的循环,你这个stax和endex是在哪里赋值的?
你可以试试这么写
int stax=0;
int endex=10;
int n=10;
for (i=stax;i<=endex;i++)
for (j=0;j<=n;j++)
{
printf_s("\n please input G[ %d ][ %d ]= ",i,j );
scanf_s("%f",&G[i][j]);
printf_s("\n please input B[ %d ][ %d ]= ",i,j );
scanf_s("%f",&B[i][j]);
};
展开全部
如果这个不变量你不经常用可以设置为全局变量 放在程序的最上部
追问
全局变量也不能把值固定下来吧
追答
const定义为常量 之后 stax与endex 就是常量了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义为全局变量,部分保持不变?,这个类型的话就不行了,你可以试试类定义,在类里分为两个不同部分
追问
不是,是用scanf读入后想把数组的值固定下来。但并非所有元素,某些元素还要计算后修正,某些可以直接固定下来。譬如定义一个啊int a[10],想把啊a[0]-a[5]的值不变当作常量,a[6]-a[10]用来计算。而且事先不知道哪个元素会被输数据时定为不变啊。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询