您现在的位置: 北大青鸟(福州时代)授权培训中心 >> 学习园地 >> 学术研讨 >> 文章正文
  [图文]巧用循环实现输入数倒置         ★★★ 【字体:
巧用循环实现输入数倒置
作者:admin    文章来源:本站原创    点击数:    更新时间:2007-7-13    

巧用循环实现输入数倒置

C语言中程序流程控制是实现很多复杂任务的基础,这一点相信学习过C语言的人都知道。但是如何高效率使用for,while,do…while来完成任务可能有些人并没有在意,特别是刚刚开始学习C语言的菜鸟们, 也许根本没意识到要成为一名合格的程序员很多细节是要弄清楚的。

先来看看do…while语句的基本结构:
do
statement / *statement是单条语句或复合语句*/
while (test); /*其中test是表达式*/

do…while语句在指定的条件test为真时不断的执行语句块statements。循环在每次循环结束后检测条件,不像for和while语句在循环开始前检测条件。do…while循环中的语句块至少执行一次,这是由于检测条件是在每次循环结束后才执行的,所以它最适合在循环中语句块至少需要执行一次的情况下使用。虽然你可以用while语句来完成这样的任务,但是使用do…while会更加简单明了。


看下面的例子,在VC++6.0下调试:
int main()
{ long int i,r;
printf("Please input an integer:>\n");
scanf("%d",&i);

do{
r = i % 10;
printf("%d",r);
}while ((i/=10)!=0);
printf("\n");

return 0;
}
运行结果
Please input an integer:>
1234567890
0987654321
语句r = i % 10求最后一位的余数,然后用printf输出。在语句的test部分,先执行i /=10
因为i是整形,与10相除的结果取整,然后判断剩下的部分是否为0,为0时表示所有的位转换完毕,循环就结束,如果不为0表示转换没有全部完成,循环就继续执行。由于使用的是do…while循环,不论输入的数是多少都至少执行一次转换,这是因为输入的数至少有一位,而做一次颠倒是不会出问题的比如当输入数0时,转换后输出的仍然是0。

同样也可以用while语句来完成上面的任务,在VC++6.0下调试:
int main()
{ long int i,r;
printf("Input an integer\n");
scanf("%d",&i);
if(i==0)
printf("%d",i);
while(i!=0)
{
r=i%10;
printf("%d",r);
i/=10;
}
printf("\n");
return 0;
}
其中if语句用来处理i为0时的情况。如果没有这一句,当输入的数为0时 ,将没有数输出,比较一下以上两个例子用do…while语句显然要比用while语句更方便也更自然。

在下期我们将讨论数组使用的一些小技巧,敬请关注。

文章录入:admin    责任编辑:admin 
  • 上一个文章:

  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    SQL Server保留关键字
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
                    版权所有  北大青鸟APTECH (福州时代)授权培训中心
                    地址:福州津泰路268号新大都时尚广场三层(肯德基旁)
                    网址:http://www.fzaccp.com.cn
                    电话:0591-87603191 87603192 400-811-8090(省内可免费拨打)
                    邮箱:fzaccp@yahoo.com.cn
                    乘车路线:948路“仙塔街”站下
                    802、817、818、22、971路“旗汛口”站下。
                    19、26、51、52、702、802、949、971路"蒙古营"站下
                    邮编:350001
    闽ICP备08004336号
    站长:北大青鸟(福州时代)培训中心