A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© welfarezhang 中级黑马   /  2015-4-16 11:28  /  1370 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

#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进行判断,然后在接受数据,可用户还没输入怎么就判断了呢,我的理解是先接受用户的输入值,然后在判断数值是否是正整数,表示不理解,请大神解答,

10 个回复

倒序浏览
这个是思路问题,你的想法没有问题,李老师的写法也没有问题。这个不需要纠结……
回复 使用道具 举报
Tony鱼先森 发表于 2015-4-16 11:31
这个是思路问题,你的想法没有问题,李老师的写法也没有问题。这个不需要纠结…… ...

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

额。。。好像有点明白了,还不是特别清晰,感谢你的解答。。。
回复 使用道具 举报
狐狸加油,一起走下去
回复 使用道具 举报
MadPawn 发表于 2015-4-16 12:25
狐狸加油,一起走下去

必须滴 come on baby...
回复 使用道具 举报
是你自己的思路问题,老师的代码是对的
回复 使用道具 举报
你这样理解也是对的,但是会造成代码繁琐
  1.     printf("请输入一个正整数");
  2.     scanf("%d",&n);
  3.     while(n<=0)
  4.     {
  5.         printf("请输入一个正整数");
  6.         scanf("%d",&n);
  7.     }
复制代码

上述代码就是你的理解写成的,最终都要输入,都要判断是否是正整数
回复 使用道具 举报
枫宇翔 发表于 2015-4-16 12:36
是你自己的思路问题,老师的代码是对的

恩恩,现在差不多理解了,感谢你的回答。。
回复 使用道具 举报
lvzhehappy 发表于 2015-4-16 12:43
你这样理解也是对的,但是会造成代码繁琐

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

是的呢,老师的代码也有点理解了,感谢你的回答。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马