惧留孙网

juliusun.com

在线教程 > C语言教程 > 判断与循环的巩固

判断与循环的巩固

第 19/50 节 冥河C语言教程


先介绍一个新函数:putchar。与getchar是输入一个字符对应,putchar是输出一个字符,用法很简单,参数是一个char类型数据。

putchar(字符)

假设有一个字符c,那么可以用putchar(c)来输出字符c。效果类似printf("%c",c)。

下面介绍下循环的嵌套。循环的嵌套,可以在少量代码的前提下,完成更多的工作。

比如要实现这样一个功能,输出十行内容,每行都是十个星号。如果用循环嵌套来实现,我们可以这样写:


  1. #include<stdio.h>
  2. int main( )
  3. {
  4. for(int i = 1 ; i <= 10 ;++i) //每执行一次,输出一行,执行十次
  5. {
  6. for(int j = 1 ; j <= 10;++j) //每执行一次,输出一个星号,执行十次
  7. {
  8. putchar('*'); //输出一个星号
  9. }
  10. putchar('\n'); //输出换行符
  11. }
  12. getchar( ) ; //使程序暂停一下
  13. return 0;
  14. }

通过10次两层循环,共输出了100个星号。这个例子之所以不能简单的循环100次,输出100个星号*,是因为还要输出换行符:

效果类似如下图:

Pic

输出换行符有个规律,就是每输出10个星号,就输出一次换行。

我们把代码优化一下,将循环的嵌套改成单层循环,然后通过判断已经输出的星号个数,来决定是否输出换行。

很明显,在for里设置个变量记录输出的星号个数,如果这个变量是10的整数倍就输出换行,否则不输出。代码如下:


  1. #include<stdio.h>
  2. int main( )
  3. {
  4. for(int i = 1 ; i <= 100 ;++i) //变量 i 可以记录输出星号的个数
  5. {
  6. putchar('*');
  7. if((i % 10) == 0)
  8. {
  9. putchar('\n'); //输出星号个数是10的倍数,就输出换行
  10. }
  11. }
  12. getchar( ) ; //使程序暂停一下
  13. return 0;
  14. }

上述两个代码,运算效果是一样的,但是把双层循环变成单层循环,效率高很多。

再举个例子巩固一下循环嵌套,这个例子比第一个复杂点,因为内层循环需要用到外层循环中的一些参数。实现一个功能,输出10行,第1行输出1个星号,第2行输出2个星号,以此类推,第10行输出10个星号。代码可以这样写


  1. #include<stdio.h>
  2. int main( )
  3. {
  4. for(int i = 1 ; i <= 10 ;++i) //每执行一次,输出一行,执行十次
  5. {
  6. for(int j = 1 ; j <= i ;++j) // i 是几,就输出几个星号
  7. {
  8. putchar('*');
  9. }
  10. putchar('\n');
  11. }
  12. getchar( ) ; //使程序暂停一下
  13. return 0;
  14. }

对于初学者,上面的例子需要多分析一下,因为内层循环的次数,和外层循环的变量 i 有关。要学好C语言多多练习吧,看的多了,练的多了,就熟练了。希望通过上面的例子,加深对判断和循环的理解。

效果类似如下图:

Pic

作者:冥河 QQ:3304576112
交流QQ群:554701039 C语言讲课群
本教程内容由本站保留版权,请勿复制传播
抖音
©2015-2024 惧留孙网 juliusun.com

京ICP备15039193号-1

首页 教程 下载 文章 聊天 我的