第二次总结

第二次总结

分支语句和循环语句重点

语句:c语言中由一个分号隔开的就是一条语句。

分支语句(选择结构):

1.if 语句
语法结构

if(表达式1)
语句1;
else if(表达式2)
语句2;
else
语句3;

注:如果表达式的结果为真,则语句执行。(0表示假,非0表示真)
else永远和最近的if语句相结合
2.switch
语法结构

switch(整型表达式)
{
 case整型常量表达式:   //语句项;
 printf();                            //语句;
 break;
}

完善的switch语句要素:
①switch case和case对应的条件
②每一个case后面把break带上包括default后面也带上
③每一个switch语句最后要把default带上

循环语句

1.while循环
语法结构

while(表达式)
循环语句;

continue:结束本次循环立马开启下一次循环
break:结束循环
2.for循环
语法结构

for(表达式1;表达式2;表达式)     //表达式1 为初始化部分  表达式2 为条件判断部分  表达式3 为调整部分
循环语句;

练习代码:

①打印100~200之间的素数
方法一

#include<stdio.h>
#include<windows.h>
int IsPrime(int x)
{
 int i=2;
 for(;i<x;i++)
  {
   if(x%i==0)
    {
     return 0;
    }
  }
 return 1;
}
int main()
{
 int x=100;
 for(;x<=200;x++) 
  {
   if(IsPrime(x))
    {
     printf("%d ",x);
    }
  }
 printf("\n");
 system("pause");
 return 0;
}

方法二

#include<stdio.h>
#include<math.h>
#include<windows.h>
int IsPrime(int x)
{
 int i=2;
 int top =(int)sqrt(x);
 for(;i<=top;i++)
  {
   if(x%i==0)
    {
     return 0;
    }
  }
 return 1;
}
int main()
{
 int x=100;
 for(;x<=200;x++) 
  {
   if(IsPrime(x))
    {
     printf("%d ",x);
    }
  }
 printf("\n");
 system("pause");
 return 0;
}

②输出乘法口诀表

#include<stdio.h>
#include<windows.h>
void show(int n)
{
 int=1;
 for(;i<=n;i++)
  {
   int j=1;
   for(;j<=i;j++)
    {
     printf("%d*%d=%d ",i,j,i*j);
    }
   printf("\n");
  }
}
int main()
{
show(9);
system("pause");
return 0;
}

③判断1000年—2000年之间的闰年

#include<stdio.h>
#include<windows.h>
int IsLeapYear(int year)
{
 if((year % 4==0 && year % 100!=0)|| year % 400==0)
  {
   return 1;
  }
 return 0;
}
int main()
{
int year =1000;
for(;year<=2000;year++)
  {
   if (IsLeapYear(year))
    {
     printf("%d",year);
    }
  }
printf("\n");
system("pause");
return 0;
}

④给定两个整形变量的值,将两个值的内容进行交换
方法一

#include<stdio.h>
#include<windows.h>
int main()
{
 int x=100;
 int y=200;
 int tmp=0;
 printf("before: %d %d\n",x,y);
 tmp=x;
 x=y;
 y=tmp;
 printf("after: %d %d\n",x,y);
 system("pause");
 return 0;
}

方法二(不创建临时变量)

#include<stdio.h>
#include<windows.h>
int main()
{
 int x=100;
 int y=200;
 printf("before: %d %d\n",x,y);
 x^=y;//1. x=x^y;        x->x^y
 y^=x;//2. y=y^x;->y^x^y;y->x
 x^=y;//3. x=x^y;->x=x^y^x
 printf("after: %d %d\n",x,y);
 system("pause");
 return 0;
}

⑤求10 个整数中最大值

#include<stdio.h>
#include<windows.h>
int Max()
{
 int a[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
 int num = sizeof(a) / sizeof(a[0]);
 int i = 1;
 int max = a[0];
 for (; i<num; i++)
 {
  if (max<a[i])
  {
   max = a[i];
  }
 }
 return max;
}
int main()
{
 printf("%d\n",Max());
 system("pause");
 return 0;
}

⑥将三个数按从大到小输出

#include<stdio.h>
#include<windows.h>
void ThreeData(int x,int y, int z)
{
 if(x>y)
  {
   if(z>x)//z x y
    {
     printf("%d %d %d\n",z,x,y);
    }
   else if(z>y)//x z y
     {
      printf("%d %d %d\n",x,z,y);
     }
   else//x y z
     {
      printf("%d %d %d\n",x,y,z);
     }
  }
 else//y>=x
  {
   if(z>y)//z y x
    {
     printf("%d %d %d\n",z,y,x);     
    }
   else if(z>x)//y z x
    {
     printf("%d %d %d\n",y,z,x);
    }
   else//y x z
    {
     printf("%d %d %d\n",y,x,z);
    }
  }
}
int main()
{
 ThreeData(1, 2, 3);
 system("pause");
 return 0;
}

⑦求两个数的最大公约数
方法一

#include<stdio.h>
#include<windows.h>
int FindCommonDivisor(int x, int y)
{
 int min = x > y ? x : y;
 while (min > 1)
  {
   if (y % min == 0 && x % min == 0)
    {
     break;
    }
   min--;
  }
 return min;
 }
int main()
{
 int x = FindCommonDivisor(32, 24);
 printf("%d\n", x);
 system("pause");
 return 0;
}

方法二(辗转相减法)

#include<stdio.h>
#include<windows.h>
int FindCommonDivisor(int x, int y)
{
 while (1)
  {
   if (x>y)
  {
   x=x-y;
  }
  else if(y>x)
   {
    y=y-x;
   }
  else
   {
   break;
   }
 }
 return x;
}
int main()
{
 int x = FindCommonDivisor(32, 24);
 printf("%d\n", x);
 system("pause");
 return 0;
}

方法三(辗转相除法)

#include<stdio.h>
#include<windows.h>
int FindCommonDivisor(int x, int y)
{
 while (x*y!=0)
  {
   if (x>y)
    {
     x %= y;
    }
   else if (y>x)
    {
     y %= x;
    }
   else
    {
     return x;
    }
  }
 return x==0?y:x;
}
int main()
{
 int x = FindCommonDivisor(32, 24);
 printf("%d\n", x);
 system("pause");
 return 0;
}

⑧将数组A中的内容和数组B中的内容进行交换

#include<stdio.h>
#include<windows.h>
void ShowArray(int a[], int num)
{
 int i = 0;
  for (; i < num; i++)
  {
  printf("%d ", a[i]);
  }
 printf("\n");
}
int main()
{
 int a[] = { 1, 2, 3, 4, 5 };
 int b[] = { 5, 4, 3, 2, 1, };
 int num = sizeof(a) / sizeof (a[0]);
 int i = 0;
 ShowArray(a, num);
    ShowArray(b, num);
  for (; i < num; i++)
  {
  a[i] ^= b[i];
  b[i] ^= a[i];
  a[i] ^= b[i];
  }
 ShowArray(a, num);
 ShowArray(b, num);
 system("pause");
 return 0;
}

⑨ 计算1/1-1/2+1/3-1/4+1/5 ⋯⋯ + 1/99 - 1/100 的值

#include<stdio.h>
#include<windows.h>
double cal(int top)
{
 int i = 1;
 double result = 0.0;
 int flag = 1;
 for (; i <= top; i++)
 {
  result += 1.0/(i*flag);
  flag = -flag;
 }
 return result;
}
int main()
{
 double d = cal(100);
 printf("result: %f\n",d);
 system("pause");
 return 0;
}

⑩编写程序数一下 1到 100 的所有整数中出现多少个数字9

#include<stdio.h>
#include<windows.h>
int Count()
{
 int i = 1;
 int count=0;
 for (; i <=100; i++)
 {
  if (i < 10)
  {
   if (i == 9)
   {
              count++;
   }
  }
  else
  {
   if (i % 10 == 9)
   {
    count++;
   }
   if(i / 10 == 9)
   {
    count++;
   }
  }
 }
return count;
}
int main()
{
 int r= Count();
 printf("result: %d\n",r);
 system("pause");
 return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值