2 qq 24447185 qq_24447185 于 2014.12.16 11:37 提问

为什么我调试不出来呢?那个i要怎样才能把它弄好????谢谢

class Program
{
static void Main(string[] args)
{

        int n, h = 0;
        Console.Write("请输入一个整数n=");
        n = Convert.ToInt16(Console.ReadLine());
        for (int i=0;i<=n ;i ++)
        {

            if (i % 2 != 0)
                h = i + h;
        }
        Console.Write(Add(h ,i));
            Console .ReadLine ();
    }
         public static int Add(int i,int h )
         {
             return h = i + h;


}

}

}

4个回答

devmiao
devmiao   Ds   Rxr 2014.12.16 11:41
已采纳

你是要做计算1~n的奇数相加,并且通过一个函数么?
这么写:

 static void Main()
{
    int h = 0;
    Console.Write("请输入一个整数n=");
    int n = Convert.ToInt32(Console.ReadLine());
        for (int i = 0; i <= n; i++)
        {
            if (i % 2 != 0) h = add(h, i);
        }
        Console.WriteLine(h);
}

static int add(int i, int h)
{
    return i + h;
}
qq_24447185
qq_24447185 直接相加不行吗?h=i+h这种的。。。
3 年多之前 回复
qq_24447185
qq_24447185 直接相加不行吗?h=i+h这种的。。。
3 年多之前 回复
devmiao
devmiao   Ds   Rxr 2014.12.16 12:02

可以啊。你也可以直接写if (i % 2 != 0) h = h + i;
或者更简单 h += i;
那就不要add那个函数啦。

devmiao
devmiao   Ds   Rxr 2014.12.16 11:44

特别要注意,函数里面的i和h叫做形参,和主程序里面的i h没关系
我给你的程序中,这么写,也是可以的,结果相同(主程序i h不变)
static int add(int a, int b)
{
return a + b;
}

qq_24447185
qq_24447185 回复devmiao: 哦哦。有点懂了。谢谢
3 年多之前 回复
devmiao
devmiao 回复qq_24447185: 一个函数就像解一个题一样。这样的好处是,函数可以拿出来单独设计,修改函数,也不会干扰主程序。你也可以方便地把函数从一个程序中拿出来,不加修改在另一个程序里面用。要是混在一起就麻烦咯。
3 年多之前 回复
devmiao
devmiao 回复qq_24447185: 每个函数有每个函数的上下文,好比你做作业,第一题有第一题的x y z,第二题有第二题的x y z,不同的题目,变量之间就没有关系了。
3 年多之前 回复
qq_24447185
qq_24447185 为什么那和主程序里的i,h没关系呢?
3 年多之前 回复
bdmh
bdmh   Ds   Rxr 2014.12.16 11:43

for (int i = 1; i <= n; i+=2)
{
h+=i;
}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!