分享我的#C语言学习之路

笔记5:

#include <stdio.h>
#include <windows.h>//使用Sleep函数时
#include <stdlib.h>//使用system函数--执行系统指令
#include <string.h>//使用strlen函数,求字符串的长度
#define _CRT_SECURE_NO_WARNINGS//忽略scanf函数的不安全性

比较三个数的大小,并从大到小排列
#include <stdio.h>
int main()
    {int a,b,c;//a中放最大值,b次之,c最小;
    int t=0,p=0,m=0;
scanf("%d %d %d",&a,&b,&c);
   if(a<b)
   {  t=b;
      b=a;
      a=t;}
    if(a<c)
    {  p=a;
       a=c;
       c=p;}
    if(b<c)
    {  m=b;
       b=c;
       c=m;}
    printf("%d %d %d\n",a,b,c);
    return 0;
    }

求两个数的最小公倍数
#include <stdio.h>
int main()
    {
    int x,y;
    int i=100;//i可以设置成更大的数
    int gy=0;
    scanf("%d %d",&x,&y);
    while(i>=1)
        {if(x%i==0&&y%i==0)
            {gy=(x/i)*(y/i);
            printf("%d\n",gy);
            break;}
         i--;}
    return 0;
    }


求两个数的最大公约数(辗转相除法)
#include <stdio.h>
int main()
    {
    int x,y,t;
    scanf("%d %d",&x,&y);
    while(t=x%y)//判断t是不是等于0,不等于0才进入循环
        {
        x=y;
        y=t;}
    printf("%d\n",y);
    return 0;
    }
//当x<y时,x%y=x;

打印1000到2000之间的闰年
//能被4整除但不能被100整除的数
//能被400整除的数

#include <stdio.h>
int main()
    {
    int x=0;
    int i=0;
    for(x=1000;x<=2000;x++)
        {if(x%4==0&& x%100!=0)
            {printf("%d  ",x);
             i++;}
        else if(x%400==0)
            {printf("%d ",x);
             i++;}}
    printf("总共有 %d 个闰年\n",i);
    return 0;
    }

找到100到200内的素数(试除法)
法1:int main()
{
    int i;
    int j;
    int count=0;
    for(j=100;j<=200;j++)
    {
      for(i=2;i<j;i++)
        {if(j%i==0)
        break;}
      if(j==i)
        {printf("%d\n",j);
      count++;}
    }
    printf("总共找到%d个素数\n",count);
    return 0;
    }


法2:
如果一个数i不是素数,那么一定会有i=a*b,并且a和b中一定有一个数小于或等于i开方;
#include <stdio.h>
#include <math.h>
int main()
{
    int i;
    int j;
    int count=0;
    for(j=100;j<=200;j++)
    {
      for(i=101;i<=sqrt(j);i+=2)//跳过所有偶数
        {if(j%i==0)
        break;}
      if(j>sqrt(j))
        {printf("%d\n",j);
      count++;}
    }
    printf("总共找到%d个素数\n",count);
    return 0;
    }


判断1到100之间9的个数
int main()
{
    int i;
    int count=0;
    for(i=1;i<=100;i+=1)
        {if(i%10==9)
            {printf("%d\n",i);
    count++;}
         if(i/10==9)
            {printf("%d\n",i);
         count++;}}
    printf("%d\n",count);
    return 0;
    }

计算1/1-1/2+1/3-1/4+....+1/99-1/100;
int main()
{
 int i=1;
 double sum=0.0;
 double t=0.0;
 int flag=1;
 for(i=1;i<=100;i+=1)
     {t=flag*(1.0/i);
      flag=-flag;//运算一次变次符号
 sum=sum+t;}
 printf("sum=%lf\n",sum);
return 0;


求十个数中的最大值
int main()
{
 int i=0;
 char arr[]={3,7,4,8,2,0,4,2,5,28};
 int max=arr[0];
 int sz=sizeof(arr)/sizeof(arr[0]);
 for(i=0;i<sz;i++)
     {if(arr[i]>max)
         max=arr[i];}
 printf("%d\n",max);
return 0;
}


乘法口诀表的打印
int main()
{
 int i=0;
 int j=0;
 int t=0;
 for(i=1;i<10;i++)
     {for(j=1;j<=i;j++)
        { 
 printf("%d*%d=%-2d ",j,i,j*i);}//列*行=结果
     printf("\n");}
return 0;
}
//i来控制行数(9行),j来控制列数(9列);
//%-2d--表示两位左对齐


goto语句---尽量少使用goto语句,否则可能会打乱逻辑;
eg:
int main()
{
again:
  printf("you are beautiful\n");
  goto again;
  return 0;}
//again:是个函数,again在哪,goto就跳到哪里;
//进入死循环,一直打印you are beautiful;

goto真正适合的场景如下:跳出嵌套的深层次的结构;

for(....)
    {for(...)
      { for(...)
            {for(....)
                {if(disaster)
                goto error;}
}}
.....
error:}
     if(disaster)//处理错误情况;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fighting787

一起加油,一起成功!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值