C语言中对于for语句,变量赋初值问题探讨

  在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语句中初值的设定,以及每一次循环后其值的变化,需要认真分析。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值