C程序设计(谭浩强)随书代码验证-第五章 循环结构

文章目录

  • C程序设计(谭浩强)随书代码验证-第五章 循环结构
    • 源码
    • 5-1while()
    • 5-2 do while
    • 5-3 while 与 do ... while比较
    • 5-4 Break
    • 5-5continue
    • 5-6-1
    • 5-6-2 Break
    • 5-6-3 continue
    • 5-7-1 π/4
    • 5-7-2 π/4
    • 5-8-1斐波那契数列
    • 5-8-2斐波那契数列
    • 5-9-1素数prime
  • 5-9-2素数prime
    • 5-10 100~200素数
    • 5-11-1
    • 5-11-2

C程序设计(谭浩强)随书代码验证-第五章 循环结构

源码

源码: github.

5-1while()

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第1张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第2张图片

#include 
int main()
{
  int i=1,sum=0;                      // 定义变量i的初值为1,sum的初值为0  
  while (i<=100)                      // 当i>100,条件表达式i<=100的值为假,不执行循环体
  {                                   // 循环体开始
   sum=sum+i;                         // 第一次累加后,sum的值为1
   i++;                               // 加完后,i的值加1,为下次累加作准备
  }                                   // 循环体结束
  printf("sum=%d\n",sum);             // 输出1+2+3…+100的累加和
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第3张图片

5-2 do while

在这里插入图片描述C程序设计(谭浩强)随书代码验证-第五章 循环结构_第4张图片

#include 
int main()
{
 int i=1,sum=0;
 do 
 {
   sum=sum+i;
   i++;
 }while(i<=100);
 printf("%d\n",sum);
 return 0;
}

![在这里插入图片描述](https://img-blog.csdnimg.cn/20200112211755217.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzI4MzQwMjI5,size_16,c
olor_FFFFFF,t_70)

5-3 while 与 do … while比较

在这里插入图片描述

#include 
int main()
{
 int i,sum=0;
 printf("please enter i,i=?");
 scanf("%d",&i);
 while(i<=10) 
 {
  sum=sum+i;
  i++;
 };
 printf("sum=%d\n",sum);
 return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第5张图片

#include 
int main()
{
 int i,sum=0;
 printf("please enter i,i=?");
 scanf("%d",&i);
 do 
 {
  sum=sum+i;
  i++;
 }while(i<=10);
 printf("sum=%d\n",sum);
 return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第6张图片

5-4 Break

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第7张图片

#include 
#define SUM 100000
int main()
{
  float amount,aver,total; 
  int i;
  for (i=1,total=0;i<=1000;i++)                      
  {
     printf("please enter amount:");
     scanf("%f",&amount);
     total= total+amount;                         
     if (total>=SUM) break;                                
  }
  aver=total/i;
  printf("num=%d\naver=%10.2f\n",i,aver);              
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第8张图片

5-5continue

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第9张图片

#include 
int main()
{int n;
 for (n=100;n<=200;n++)
   {if (n%3==0)
      continue;
    printf("%d  ",n);
   }
 printf("\n");
 return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第10张图片

5-6-1

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第11张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第12张图片

#include 
int main()
{
  int i,j,n=0;
  for (i=1;i<=4;i++)                      
    for (j=1;j<=5;j++,n++)
	{ if(n%5==0)printf("\n");     //控制在输出5个数据后换行
	  printf("%d\t",i*j);
	}  
  printf("\n");	
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第13张图片

5-6-2 Break

在这里插入图片描述

#include 
int main()
{
  int i,j,n=0;
  for (i=1;i<=4;i++)                      
    for (j=1;j<=5;j++,n++)
	{ if(n%5==0)  printf("\n");     //控制在输出5个数据后换行
	  if (i==3 && j==1)  break;    //遇到第3行第1列,终止内循环
	  printf("%d\t",i*j);
	}  
  printf("\n");	
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第14张图片

5-6-3 continue

在这里插入图片描述

#include 
int main()
{
  int i,j,n=0;
  for (i=1;i<=4;i++)                      
    for (j=1;j<=5;j++,n++)
	{ if(n%5==0)printf("\n");         //控制在输出5个数据后换行
	  if (i==3 && j==1) continue;    //遇到第3行第1列,提前结束执行本次内循环体
	  printf("%d\t",i*j);
	}  
  printf("\n");	
  return 0;
}

5-7-1 π/4

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第15张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第16张图片

#include 
#include
int main()
{
  int sign=1;                        // sign用来表示数值的符号
  double pi=0.0,n=1.0,term=1.0;      // pi代表π,n代表分母,term代表当前项的值
  while(fabs(term)>=1e-6)            // 检查当前项term的绝对值是否大于或等于10的(-6)次方
  {
     pi=pi+term;                     // 把当前项term累加到pi中
     n=n+2;                          // n+2是下一项的分母 
     sign=-sign;                     // sign代表符号,下一项的符号与上一项符号相反
     term=sign/n;                    // 求出下一项的值term
  }
  pi=pi*4;                           // 多项式的和pi乘以4,才是π的近似值
  printf("pi=%10.8f\n",pi);          // 输出π的近似值  
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第17张图片

5-7-2 π/4

#include 
#include
int main()
{
  int sign=1;                        // sign用来表示数值的符号
  double pi=0.0,n=1.0,term=1.0;      // pi代表π,n代表分母,term代表当前项的值
  while(fabs(term)>=1e-6)            // 检查当前项term的绝对值是否大于或等于10的(-6)次方
  {
     pi=pi+term;                     // 把当前项term累加到pi中
     n=n+2;                          // n+2是下一项的分母 
     sign=-sign;                     // sign代表符号,下一项的符号与上一项符号相反
     term=sign/n;                    // 求出下一项的值term
  }
  pi=pi*4;                           // 多项式的和pi乘以4,才是π的近似值
  printf("pi=%10.8f\n",pi);          // 输出π的近似值  
  return 0;
}

精度不一样
10^-6
10^-8
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第18张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第19张图片

5-8-1斐波那契数列

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第20张图片

#include 
int main()
 { 
  int f1=1,f2=1,f3;
  int i;
  printf("%12d\n%12d\n",f1,f2);
  for(i=1; i<=38; i++)
    {
	  f3=f1+f2;
	  printf("%12d\n",f3);
	  f1=f2;
	  f2=f3;
    }
} 

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第21张图片

5-8-2斐波那契数列

 	C程序设计(谭浩强)随书代码验证-第五章 循环结构_第22张图片

#include 
int main()
 { 
  int f1=1,f2=1;
  int i;
  for(i=1; i<=20; i++)                    // 每个循环中输出2个月的数据,故循环20次即可
    {
	  printf("%12d %12d ",f1,f2);         // 输出己知的两个月的兔子数
      if(i%2==0) printf("\n");
      f1=f1+f2;                       // 计算出下一个月的兔子数,并存放在f1中
      f2=f2+f1;                       // 计算出下两个月的兔子数,并存放在f2中
    }
  return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第23张图片

5-9-1素数prime

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第24张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第25张图片

#include 
int main()
 {int n,i;
  printf("please enter a integer number,n=?");
  scanf("%d",&n);
  for (i=2;i<=n-1;i++)
    if(n%i==0) break;
  if(i<n) printf("%d is not a prime number.\n",n);
  else printf("%d is a prime number.\n",n);
  return 0;
} 

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第26张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第27张图片

5-9-2素数prime

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第28张图片

#include 
#include 
int main()
 {int n,i,k;
  printf("please enter a integer number:n=?");
  scanf("%d",&n);
  k=sqrt(n);
  for (i=2;i<=k;i++)
    if(n%i==0) break;
  if(i<=k) 
	printf("%d is not a prime number.\n",n);
  else printf("%d is a prime number.\n",n);
  return 0;
} 

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第29张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第30张图片

5-10 100~200素数

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第31张图片

# include 
# include 
int main()
 {int n,k,i,m=0;
  for(n=101;n<=200;n=n+2)                        // n从100变化到200,对每个n进行判定
    { k=sqrt(n);
      for (i=2;i<=k;i++)                          
        if (n%i==0) break;                      // 如果n被i整除,终止内循环,此时i
      if (i>=k+1)                               // 若j>=k+1,表示n未被整除
		{printf("%d ",n);                       // 应确定n是素数
	     m=m+1;                                 // m用来控制换行,一行内输出10个录素数
		}     
	  if(m%10==0) printf("\n");                 // m累计到10的倍数,换行
    }
  printf ("\n");
  return 0;
 }

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第32张图片

5-11-1

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第33张图片
C程序设计(谭浩强)随书代码验证-第五章 循环结构_第34张图片

#include 
int main()
{
	char c;
	c=getchar();                             			// 输入一个字符给字符变量c
	while(c!='\n')                          	 		// 检查c的值是否换行符'\n'  
	{
		if((c>='a' && c<='z') || (c>='A' && c<='Z'))  	// c如果是字母
		{ 
			if(c>='W' && c<='Z' || c>='w' && c<='z') c=c-22;   // 如果是26个字母中最后4个字母之一
         	else c=c+4;                      	// 如果是前面22个字母之一,就使c加4,即变成其后第4个字母
	   }
     	printf("%c",c);                      	// 输出己改变的字符
     	c=getchar();                         	// 再输入下一个字符给字符变量c
    }
  	printf("\n");
  	return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第35张图片
Note:getchar(); 可以顺序从输入buff中获取字符

5-11-2

在这里插入图片描述

#include 
int main()
{
	char c;
  	while((c=getchar())!='\n')          // 输入一个字符给字符变量c并检查它c的值是否换行符  
    {
		if((c>='A' && c<='Z') || (c>='a' && c<='z'))     // c如果是字母
       	{ 
			c=c+4;                       // 只要是字母,都先加4
	     	if(c>='Z' && c<='Z'+4 || c>'z')   // 如果是26个字母中最后4个字母之一
		    c=c-26;                   // c的值改变为26个字母中最前面的4个字母中对应的字母        
	   	}
    	printf("%c",c);                  // 输出己改变的字符
    }
  	printf("\n");
  	return 0;
}

C程序设计(谭浩强)随书代码验证-第五章 循环结构_第36张图片

你可能感兴趣的:(C语言,#,谭浩强《C程序设计》例程笔记)