在C语言编程中很多时候会用到for语句循环,这就需要对for循环里面所涉及的变量赋值,有时赋值赋不对则会造成结果的错误。
下面就我在编程中所涉及的问题进行详解。
例如:打印所有不超过256的,其平方具有对称性质的数即回文数。
程序如下:
#include <stdio.h>
int main()
{
int a[5], n, i, c, j ;
for ( i =1; i < 256; i++ )
{
long int y, k = 0;
c = 1;
j = 0;
y = i * i;
while ( y > 0 )
{
a[j] = y % 10;
y /= 10;
j++;
}
for (; j > 0; j--)
{
k += a[j-1] * c;
c *= 10;
}
if ( i * i == k )
printf("%d ", i);
}
printf("\n");
}
程序很简单我之所以出现问题,是在第三个for循环中,对变量k、c的赋值出现了错误,原因在于之前将k、c的初值赋在了第一个for循环外即第一行的Int中,这就导致在每一次for循环中,k、c的值都没有回到初值,一直保留上一次循环中的值,从而导致结果出错。
因此,对for语句中初值的设定,以及每一次循环后其值的变化,需要认真分析。