#c语言学习笔记3

1.求两个数的最大公约数
辗转相除法

#include<stdio.h>
int main()
{
    int m,n,r;
    scanf("%d %d",&m,&n);
    while(r!=0)
        {
            r=m%n;
            m=n;
            n=r;
        }
        printf("最大公约数是%d",m);
}

递归

#include<stdio.h>
fun(int m,int n)
{
    if(m%n==0)
        return n;
    else
        return(fun(n,(m%n)));
}
int main()
{
    int m,n,r;
    scanf("%d%d",&m,&n);
    fun(m,n);
    printf("最大公约数是%d",fun(m,n));
}

2将数组a中的内容和数组b中的内容进行交换(数组一样大)

#include<stdio.h>
int main()
{
    int a[5]={11,22,33,44,55};
    int b[5]={22,33,44,55,66};
    int c[5];
    for(int i=0;i<5;i++){
        c[i]=a[i];
        a[i]=b[i];
        b[i]=c[i];
    }
    for(int i=0;i<5;i++)
        printf("%d ",a[i]);
        printf("\n");
    for(int i=0;i<5;i++)
        printf("%d ",b[i]);
}

3.计算1/1-1/2+1/3-1/4+1/5-…+1/99-1/100的值

#include<stdio.h>
int main()
{
    int denominator;
    float sum=0;//第一次真正意义上用float型定义变量
    for(denominator=1;denominator<101;denominator++){
        if(denominator%2==1)
        sum+=1.0/denominator;
        else
            sum-=1.0/denominator;
    }
    printf(\n",sum);
}

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

#include<stdio.h>
int main()
{
    int a,b,i;
    int count=0;
    for(i=1;i<101;i++){
        if(i%10==9)
            count++;
        if(i/9==9)
            count++;
    }
    printf("1到100的所有整数中出现%d次数字9",count);
}

有一个小的思考点:用进制数取模是个位,用进制数相除是右移一位
5.
// *
//***
//*****
// *******
//*********
// *******
// *****
// ***
// *

#include<stdio.h>
int main()
{
    int i,j,k;
    for(i=1;i<6;i++){
        for(k=1;k<6-i;k++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
              printf("\n");


    }
    for(i=4;i>=1;i--){
        for(k=1;k<6-i;k++)
            printf(" ");
        for(j=1;j<=2*i-1;j++)
            printf("*");
             printf("\n");

    }

}

6.求出0~999之间的所有“水仙花数”并输出

#include<stdio.h>
int main()
{
   int i,a,b,c;
   for(i=100;i<1000;i++){
    a=i%10;
    b=(i/10)%10;
    c=(i/100)%10;
    if(i==a*a*a+b*b*b+c*c*c)
    printf("%d是水仙花数!\n",i);
   }
}

7.求Sn=a+aa+aaa+aaaa+aaaaa的前五项之和

#include<stdio.h>
int main()
{
     int a,sum;
     scanf("%d",&a);
     sum=a*1+a*11+a*111+a*1111+a*11111;
     printf("%d",sum);

}

循环方法

#include<stdio.h>
int main()
{
    int sum,a,constant;
    sum=0;

    scanf("%d",&a);
    constant=a;
    for(int i=0;i<5;i++){

        sum+=a;
        a=a*10+constant;

    }
      printf("%d",sum);
}

8.编写一个程序,它从标准输入读取c的源代码,并验证所有的花括号都正确的成对出现。这里有一个getchar和putchar的简单用法
在这里插入图片描述

#include<stdio.h>
int main()
{
    int ch;
    int count;//定义一个计数器
    count=0;
    while((ch=getchar())!=EOF)
    {
        if(ch=='{')
            count++;
        else if(ch=='}'&&count==0){
            printf("不好意思没有成功!");

        }
        else if(ch=='}'&&count!=0)
            count--;

    }
    if(count==0)
            printf("恭喜你配对成功!");
        else
        printf("不好意思没有成功!");

}

最后记一下最近的一下想法,感觉编程的学习就是一个低奖励机制的游戏,他并不能对你的付出及时的做出反馈,不想打游戏一样,打完boss就一定会爆出装备让你爽一下,所以我会坚持把码完的代码贴到博客上,记录自己的成长经历,也算是一种迎合奖励机制的过程,让自己也有那么一点成就感,当然不仅是编程,学习任何东西都是这样!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值