查询操作,偶数的判断
分类:多线程

/**
 *尽管一个数能被2整除且余数为0 重回1 佛则赶回 0
 */
int  isOuShu(int i)
{
  if(i%2==0)
     return 1;
 else
    return 0;
}
void  main()
{
    int a;
    printf("请输入以下数字n");
    scanf("%d",&a);
    if(isOuShu(a)){
      printf("%d 是偶数",a);
    }
   else{
     printf("%d 是奇数",a);
   }
}

贯彻函数功效对数组成分进行扦插、删除、查询操作

#include
#define MAX 100
int insert(int a[],int n,int i,int x)
{
int j;
if(n+1>MAX)
printf(无插入空间 卡塔尔; //数组只可以存MAX个数
else if(i<1||i>n+1)
printf(插入地方违规 卡塔尔(قطر‎; //插入地点的节制为1..n+1
else
{
for(j=n-1;j>i-2;j--)
a[j+1]=a[j]; //将数组中i地方及其背后的数,依次向后移动一格
a[i-1]=x; //在i地方插入x
n++;
}
return n; //重回当前数组大小
}
int del(int a[],int n,int i)
{
int j;
if(i<1||i>n)
printf(删除地点违法 卡塔尔;
else
{
for(j=i-1;j
a[j] = a[j+1];
n--;
}
return n;
}
int search(int a[],int n,int x)
{
int i;
for(i=0;i
{
if(a[i]==x)
return i+1;
}
return -1;
}
void printArray(int a[],int n)
{
int i;
for(i=0;;i++)
{
if(i==n-1)
{
printf(%d ,a[i]);
break;
}
printf(%d ,a[i]);
}
}
void main()
{
int n,i,a[MAX];
int index,x;
printf(输入数组中的成分个数 卡塔尔;
scanf(%d,&n);
for(i=0;i
scanf(%d,&a[i]);
printf(请输入要插入之处和插入的数 卡塔尔;
scanf(%d %d,&index,&x);
n = insert(a,n,index,x);
printArray(a,n);
printf(请输入要刨除成分的地点 卡塔尔国;
scanf(%d,&index);
n = del(a,n,index);
printArray(a,n);
printf(请输入要询问的成分 State of Qatar;
scanf(%d,&x);
i = search(a,n,x);
if(i!=-1)
printf(%d的位置:%d ,x,i);
else
printf(未找到%d ,x);
}

 

#include #define MAX 100 int insert(int a[],int n,int i,int x卡塔尔 { int j; if(n+1MAX卡塔尔 printf(无插入空间 卡塔尔(قطر‎; /...

 

/*折半搜求*/

完数/最大协议数/最小公倍数/素数/回文数

2015-04-08 10:33 296人阅读 评论(0) 收藏 举报

图片 1 分类:

 

C/C++(60) 图片 2 金斯敦外贸大学(8) 图片 3

版权注解:本文为博主原创小说,未经博主允许不得转载。

 

1.八个正整数的因子是具有能够整除它的正整数。而三个数若是正好等于除它本身外的因子之和,那几个数就叫做完数。比如6=1+2+3(6的因子是1,2,3State of Qatar。

 

[cpp] view plain copy

 

 图片 4图片 5

  1. #include <stdio.h>  
  2. #include <math.h>  
  3. int IsPerfect(int x);  
  4. int main()  
  5. {  
  6.     int m;  
  7.     printf("Input m:");  
  8.     scanf("%d", &m);  
  9.   
  10.     if (IsPerfect(m))  /* 完全体判断 */  
  11.         printf("%d is a perfect numbern", m);  
  12.     else  
  13.         printf("%d is not a perfect numbern", m);  
  14.     return 0;  
  15. }  
  16.   
  17.   
  18. /* 函数功能:决断完全体,若函数再次来到0,则意味着不是一心数,若重临1,则意味是全然数 */  
  19. int IsPerfect(int x)  
  20. {  
  21.     int i;  
  22.     int total = 0;          /* 1未有真因子,不是全然数 */  
  23.   
  24.     for (i=1;i<x;i++)  
  25.     {  
  26.         if (x%i==0)  
  27.             total = total + i;  
  28.     }  
  29.     return total==x ? 1 : 0;  
  30. }  

2.安排二个函数MaxCommonFactor(卡塔尔(قطر‎利用辗转相除法总计八个正整数的最大协议数

[cpp] view plain copy

 

 图片 6图片 7

  1. #include <stdio.h>  
  2. int MaxCommonFactor(int a, int b);  
  3. int main()  
  4. {  
  5.      int a, b, x;  
  6.      printf("Input a,b:");  
  7.      scanf("%d,%d", &a, &b);  
  8.      x =MaxCommonFactor(a,b);  
  9.   
  10.      if (x != -1)  
  11.      {  
  12.           printf("MaxCommonFactor = %dn", x);  
  13.      }  
  14.      else  
  15.      {  
  16.           printf("Input error!n");  
  17.      }  
  18.   
  19.      return 0;  
  20. }  
  21.   
  22. //函数功效: 总结七个正整数的最大公约数,-1意味着平昔不最大左券数  
  23. int MaxCommonFactor(int a, int b)  
  24. {  
  25.      int r;  
  26.      if (a<=0 || b<=0卡塔尔国 return -1; // 保险输入的参数为正整数  
  27.   
  28.      do{  
  29.           r=a%b;  
  30.           a = b;  
  31.           b = r;  
  32.      }while (r!=0);  
  33.   
  34.      return  a;  
  35. }  

[cpp] view plain copy

 

 图片 8图片 9

  1. //函数功效: 计算四个正整数的最大合同数,递归版本  

[cpp] view plain copy

 

 图片 10图片 11

  1. <pre name="code" class="cpp"><p>int <span style="font-family: Arial, Helvetica, sans-serif; font-size: 12px;"><strong>MaxCommonFactor</strong></span>(int a,int b)</p>{  
  2.     int r;  
  3.     if(a<0 || b<0) return -1;  
  4.     if(b==0)  
  5.         r=a;  
  6.     else  
  7.         r=Gcd(b,a%b);  
  8.     return r;  
  9. }  

另一种版本:

 

[cpp] view plain copy

 

 图片 12图片 13

  1. int divisor(int a,int b)  
  2. {  
  3.     int x = a<b?a:b;  //求a,b的小小数   
  4.     while(x)  
  5.     {  
  6.         if(a%x==0 && b%x==0)  
  7.             break;  
  8.         --x;      
  9.     }  
  10.     return x;  
  11. }  

 

3.统筹二个函数MinCommonMultiple(State of Qatar,总括八个正整数的最小公倍数

 

 

[cpp] view plain copy

 

 图片 14图片 15

  1. #include <stdio.h>  
  2. int MinCommonMultiple(int a, int b);  
  3. int main()  
  4. {  
  5.     int a, b, x;  
  6.     printf("Input a,b:");  
  7.     scanf("%d,%d", &a, &b);  
  8.     x = MinCommonMultiple(a,b);  
  9.   
  10.     if (x!=-1)  
  11.         printf("MinCommonMultiple = %dn", x);  
  12.     else  
  13.         printf("Input error!n");  
  14.   
  15.    return 0;  
  16. }  
  17. //函数作用:总计三个正整数的最小公倍数,-1象征尚无最小公倍数  
  18. int MinCommonMultiple(int a, int b)  
  19. {  
  20.     int i;  
  21.   
  22.     if (a<=0 || b<=0卡塔尔国 return -1;        // 有限支撑输入的参数为正整数  
  23.   
  24.     for (i=1; i<b; i++)  
  25.     {  
  26.         if ((i*a)%b==0)   return i * a;  
  27.     }  
  28.   
  29.     return b * a;  
  30. }  

4.企划二个函数,用来判断叁个整数是或不是为素数

 

 

[cpp] view plain copy

 

 图片 16图片 17

  1. #include <math.h>  
  2. #include <stdio.h>  
  3. int IsPrimeNumber(int number);  
  4. int main()  
  5. {  
  6.      int n, ret;  
  7.      printf("Input n:");  
  8.      scanf("%d", &n);  
  9.      ret = IsPrimeNumber(n);  
  10.      if (ret!=0)  
  11.      {  
  12.           printf("%d is a prime numbern", n);  
  13.      }  
  14.      else  
  15.      {  
  16.           printf("%d is not a prime numbern", n);  
  17.      }  
  18.      return 0;  
  19. }  
  20. //函数功用:判定number是不是是素数,函数重返非0值,表示是素数,不然不是素数  
  21. int IsPrimeNumber(int number)  
  22. {  
  23.      int i;  
  24.   
  25.      if (number <= 1卡塔尔 return 0; // 负数、0和1都不是素数  
  26.          for (i=2; i<sqrt(number); i++)  
  27.          {  
  28.               if (number%i==0State of Qatar // 被整除,不是素数  
  29.                   return 0;  
  30.      }  
  31.      return 1;  
  32. }  

 

发源宁波农业余大学学MOOC课件

 

5.回文数

出口全数不超越n(取n<256State of Qatar的、其平方具备对称性质的正整数(也号称回文数)。

如:  1*1=1; 2*2=4;3*3=9;11*11=121;1,2,3,11是回文数。

[cpp] view plain copy

 

 图片 18图片 19

  1. #include <stdio.h>  
  2. #include <stdbool.h>  
  3. bool isPalindrome(int num);  
  4. bool isPalindrome(int num卡塔尔国  //判别回文数字  
  5. {  
  6.     int pal = 0;  
  7.     int origin = num;  
  8.   
  9.     while(num)  
  10.     {  
  11.         pal *= 10;  
  12.         pal += num % 10;  
  13.         num /= 10;  
  14.     }  
  15.   
  16.     return pal == origin;  
  17. }  
  18. int main()  
  19. {  
  20.     int n,i;  
  21.     scanf("%d",&n);  
  22.     for(i=1;i<n;i++)  
  23.     {  
  24.         if(isPalindrome(i*iState of Qatar && i<256State of Qatar  //打字与印刷回文数字  
  25.             {  
  26.                 printf("%dn",i);  
  27.             }  
  28.     }  
  29.   
  30.    return 0;  
  31. }  

#include<stdio.h>

#define MAX 100

int a[MAX];

void init_array(int n卡塔尔国//开始化数组

{

int i;

for(i=0;i<n;i++)

{

printf("a[%d]=",i);

scanf("%d",&a[i]);

}

}

void print_array(int n卡塔尔国//输出数组

{

int i;

for(i=0;i<n;i++)

printf("a[%d]=%-3d",i,a[i]);

printf("n");

}

int halfserch(int n,int key)

{

int s,e,i;

s=1;

e=n;

while(s<=e)

{

i=(s+e)/2;

if(key<a[i])

e=i-1;

else if(key>a[i])

s=i+1;

else//适逢其时找到,重返

return(i);

}

return (0);

}

bublesort(int n)

{

int i,j,tmp;

for(i=0;i<n;i++)

for(j=0;j<i;j++)

if(a[i]<a[j])

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

}

}

int main(void)

{

int n,key,flag;

printf("Input the array size n:n");

scanf("%d",&n);

init_array(n);

printf("Input the key you want to findn");

scanf("%d",&key);

bublesort(n);

print_array(n);

flag=halfserch(n,key);

if(flag)

printf("We found it a[%d]=%dn",flag,a[flag]);

else

printf("Not Found the number %d!n",key);

}

/*快速排序*/

#include<stdio.h>

#define MAX 100

int a[MAX];

void init_array(int n)

{

int i;

for(i=0;i<n;i++)

{

printf("a[%d]=",i);

scanf("%d",&a[i]);

}

}

void print_array(int n)

{

int i;

for(i=0;i<n;i++)

printf("a[%d]=%-3d",i,a[i]);

}

void quicksort(int s,int e)

{

int i,j,tmp,key;

i=s;

j=e;

key=a[s];

while(i<j)

{

if(a[i]>a[j])

{

tmp=a[i];

a[i]=a[j];

a[j]=tmp;

if(tmp==key)

i++;

else

j--;

}

else

{

if(a[i]==key)

j--;

else

i++;

}

}

if(s<i-1)

quicksort(s,i-1);

if(i+1<e)

quicksort(i+1,e);

}

int main(void)

{

int n;

printf("Input the array size n:n");

scanf("%d",&n);

init_array(n);

quicksort(0,n-1);

print_array(n);

printf("n");

}

本文由10bet手机官网发布于多线程,转载请注明出处:查询操作,偶数的判断

上一篇:谁又和谁,_书评影评_好文学网 下一篇:没有了
猜你喜欢
热门排行
精彩图文