我是靠谱客的博主 大气河马,这篇文章主要介绍C语言易错点整理前言1、float和double2、求最大公约数3、输出4、字符串5、 a b a^b ab求最后一位的处理办法6、整型数组合二为一7、加减乘原理8、交换两个数9、威尔逊定理和孪生素数,现在分享给大家,希望可以做个参考。

文章目录

  • 前言
  • 1、float和double
  • 2、求最大公约数
  • 3、输出
  • 4、字符串
  • 5、 a b a^b ab求最后一位的处理办法
  • 6、整型数组合二为一
  • 7、加减乘原理
  • 8、交换两个数
  • 9、威尔逊定理和孪生素数

前言

大一在学习C语言时整理的笔记。到现在,好长时间没看了,复习回顾一下。

1、float和double

float(0.01)
double(0.001)

两者的区别:double精度高

    double s=1.34;
    printf("%7.2fn",s);   //右对齐
    printf("%-7.2fn",s);  //左对齐

在这里插入图片描述
本来输出就是左对齐的

2、求最大公约数

求m和n的最大公约数:

第一种方法:c++中的:__gcd(a,b)函数

    scanf("%d %d",&n,&m);
    printf("%dn",__gcd(n,m));

第二种方法:递归

形式1
    int gcd(int a,int b){
        if(b==0)
            return a;
        return gcd(b,a%b);
    }
    
形式2
int gcd(int a,int b){
    if(a%b==0)
        return b;
    return gcd(b,a%b);

}

第三种方法:非递归

int solve(int a,int b)
{
    int temp;
    if(a<b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    int r;
    while((r=a%b)!=0)
    {
        a=b;
        b=r;
    }
    return b;
}

3、输出

一个格式说明,两个输出变量。后面的不输出。

int main()
{
    int x=12,y=34;
    printf("%dn",x,y);
    return 0;
}

在这里插入图片描述

三种丢小数的情况:

   int a=1.6;
   (int)a;  //强制类型转化
   1/23/2

4、字符串

字符串的基本操作:

    strcpy:赋值字符串
    strcat:连接两个字符串
    strcmp:比较两个字符串的大小
    strlen:检测字符串的长度
    strlwr:字符串改为小写
    strupr:字符串改为大写

字符串可以当成字符一个一个输入:
(1):

    char c;
    c=getchar();
    while(c!='n')
    {
        printf("%c",c);
        c=getchar();
    }

(2):

   char c;
   while((c=getchar())!='n')
   {
       printf("%c",c);
   }

5、 a b a^b ab求最后一位的处理办法

若a超级大,超范围的处理方法:

  a=a%10;
  e=a*a%10;
  f=a*a*a%10;
  g=a*a*a*a%10;

6、整型数组合二为一

两个整型数组连在一起:

 int A[1000],B[1000];
 int l=strlen(A);
 int x=strlen(B);
 for(int i=0;i<x;i++)
    A[l++]=B[i];

7、加减乘原理

    加法取余:(a+b)%mod=(a%mod+b%mod)%mod;
    乘法取余:(a%mod*b%mod)%mod;
    减法取余:(a-b)%mod=(a-b+mod)%mod;
    A|B:A、B都转化为二进制,每一位相对应,如果有一位是1,则为1

8、交换两个数

不借助中间变量交换两个数:

    int a=3,b=5;
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a-->%dnb-->%dn",a,b);

在这里插入图片描述

9、威尔逊定理和孪生素数

P ( 1 0 9 < = p < = 1 0 14 ) P(10^9<=p<=10^ {14}) P(109<=p<=1014)为素数


找出小于P的最大素数Q。求Q!%P
思路:
威尔逊定理:(P-2)!%P=1(P为任意素数)
孪生素数:(P、P-2都是素数)

分析:Q<=P-2

1 2 .....Q|Q+1、Q+2..... P-2

令:x=1 2 .....Q
y=Q+1、Q+2..... P-2
x*y%P=1   =>x=1/y%p
再求y在P下的逆元

趁现在还有期待,加油!-2021.4.16
第二次修改。-2022.11.10

最后

以上就是大气河马最近收集整理的关于C语言易错点整理前言1、float和double2、求最大公约数3、输出4、字符串5、 a b a^b ab求最后一位的处理办法6、整型数组合二为一7、加减乘原理8、交换两个数9、威尔逊定理和孪生素数的全部内容,更多相关C语言易错点整理前言1、float和double2、求最大公约数3、输出4、字符串5、 内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部