黑马程序员技术交流社区

标题: 请路过的大神解答 [打印本页]

作者: welfarezhang    时间: 2015-4-16 11:28
标题: 请路过的大神解答
#include<stdio.h>
int main()
{
        int n =0;
        while(n<=0)
  {
        printf("请输入一个正整数:\n");
        scanf(%d,&n);

   }
  int sum = 0;
  int number = 0;
while(number < n)
{
        ++number;
        sum += number;

}
  printf("%d\n",sum);
        return 0;

}
刚才在看李明杰老师的视频,看到这有点疑惑,这个程序实现的功能:请用户输入一个正整数n,然后计算1+2+3+,,,n的和 如果输入的不是正整数,再次提醒用户输入,直至输入正整数为止,在程序开头 while循环中,直接对n进行判断,然后在接受数据,可用户还没输入怎么就判断了呢,我的理解是先接受用户的输入值,然后在判断数值是否是正整数,表示不理解,请大神解答,


作者: Tony鱼先森    时间: 2015-4-16 11:31
这个是思路问题,你的想法没有问题,李老师的写法也没有问题。这个不需要纠结……
作者: welfarezhang    时间: 2015-4-16 11:33
Tony鱼先森 发表于 2015-4-16 11:31
这个是思路问题,你的想法没有问题,李老师的写法也没有问题。这个不需要纠结…… ...

还是不是太理解,能再解释一下吗
作者: Tony鱼先森    时间: 2015-4-16 11:39
好吧,你的思路是:获取数值(不设置初值)—》判断数值。李老师的思路是:先设置好变量初值—》判断数值是否符合要求,其实最终目的都是判断数值输入的数值是否符合要求而已,所以没差。
如果,真的要判个高低,那李老师的做法更高,因为我们在编程时最忌讳的是变量的初始化,因为未初始化的变量可能会对程序产生不良影响,当然现在我们还是小白阶段,没必要想那么深,所以,你们的思路都没差……:lol
作者: welfarezhang    时间: 2015-4-16 11:43
Tony鱼先森 发表于 2015-4-16 11:39
好吧,你的思路是:获取数值(不设置初值)—》判断数值。李老师的思路是:先设置好变量初值—》判断数值是 ...

额。。。好像有点明白了,还不是特别清晰,感谢你的解答。。。
作者: MadPawn    时间: 2015-4-16 12:25
狐狸加油,一起走下去
作者: welfarezhang    时间: 2015-4-16 12:27
MadPawn 发表于 2015-4-16 12:25
狐狸加油,一起走下去

必须滴 come on baby...
作者: 枫宇翔    时间: 2015-4-16 12:36
是你自己的思路问题,老师的代码是对的
作者: lvzhehappy    时间: 2015-4-16 12:43
你这样理解也是对的,但是会造成代码繁琐
  1.     printf("请输入一个正整数");
  2.     scanf("%d",&n);
  3.     while(n<=0)
  4.     {
  5.         printf("请输入一个正整数");
  6.         scanf("%d",&n);
  7.     }
复制代码

上述代码就是你的理解写成的,最终都要输入,都要判断是否是正整数
作者: welfarezhang    时间: 2015-4-16 15:52
枫宇翔 发表于 2015-4-16 12:36
是你自己的思路问题,老师的代码是对的

恩恩,现在差不多理解了,感谢你的回答。。
作者: welfarezhang    时间: 2015-4-16 15:53
lvzhehappy 发表于 2015-4-16 12:43
你这样理解也是对的,但是会造成代码繁琐

上述代码就是你的理解写成的,最终都要输入,都要判断是否是正整 ...

是的呢,老师的代码也有点理解了,感谢你的回答。。。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2