您的位置:首页 > 编程语言 > C语言/C++

常见C语言题目:选择排序,冒泡排序,函数调用,递归等重要题列

2017-11-27 22:21 405 查看
/*鞍点*/

/*

#include <stdio.h>

int  main()

{

    int a[3][4],i,j,k;

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

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

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

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

    {

            j=0;

            for(k=1;k<4;k++)

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

            j=k;

        for(k=0;k<3;k++)

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

            break;

        if(k==3)

        {

            printf("an dian zai di %d hang %d lie\n",i+1,j+1);

            return;

        }

    }

    printf("没有鞍点\n");

    return 0;

}*/

/*杨辉三角*/

/*#include <stdio.h>

int main()

{

    int a[10][10],i,j;

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

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

    {

        if(j==0||i==j)

            a[i][j]=1;

        else

            a[i][j]=a[i-1][j]+a[i-1][j-1];

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

        if(i==j)

        printf("\n");

    }

    return 0;

}*/

/*#include <stdio.h>

int main()

{*/

/*    int a,b,c,max,temp;

    scanf("%d%d%d",&a,&b,&c);

    temp=(a>b)?a:b;

    max=(temp>c)?temp:c;

    printf("max=%d\n",max);*/

    /******冒泡排序*******/

/*    int a[]={10,9,8,7,6,5,4,3,2,1 };

    int i;

    int len=sizeof(a)/sizeof(a[0]);

    int temp;

    int j;

    for (i=0;i<len-1;i++)

    {

        for (j=0;j<len-1-i;j++)

        {

            if (a[j]>a[j+1])

            {

                temp=a[j];

                a[j]=a[j+1];

                a[j+1]=temp;

            }            

        }

    

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

    printf("%d ",a[j]);

    

        printf("\n");*/

   /*****选择排序***/

/*   int a[]={10,9,8,7,6,5,4,3,2,1};

    

int i,j;

    int min;

    int temp;

    int len=sizeof(a)/sizeof(a[0]);

    for (i=0;i<len-1;i++)

    {

        min=i;

        for(j=i+1;j<len;j++)

        {

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

            {

                min=j;

            }

        }

        if(min!=i)

        {

            temp=a[i];

            a[i]=a[min];

            a[min]=temp;

        }

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

            printf("%d ",a[j]);

        printf("\n");

        }

        return 0;

        }*/

 

    /*最大公约数,最小公倍数*/

/* long m,n,i,j,s;

    scanf("%ld,%ld",&m,&n);

    for (i=1;m>=i&&n>=i;i++)

        {

            if(m%i==0&&n%i==0)

                s=i;

        }

    if(m>n)

    {

        j=m;

    }

    else

        j=n;

    

    for (;!(j%m==0&&j%n==0);j++);

        printf("%ld %ld",s,j);*/

 

    /*求三个字符串中最大者*/

/*#include <stdio.h>

#include <string.h>

int main()

{

    char str[3][20];

    char string[20];

    int i;

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

    gets (str[i]);

    if(strcmp(str[0],str[1])>0)

    strcpy(string,str[0]);

    else

    strcpy(string,str[1]);

    if(strcmp(string,str[2])>0)

    printf("%s\n",string);

    else

    printf("%s\n",str[2]);*/

    /*斐波那挈数列*/

/*#include<stdio.h>

int main()

{

    int i,f1=1,f2=1,f;

    for (i=3;i<=30;i++)

    {

        f=f1+f2;

        f1=f2;

        f2=f;

    

    printf("%10d",f);

    if(i%5==0)

        printf("\n");

    }

    return 0;

}*/

/*最小公倍数*/

/*#include<stdio.h>

int main()

{

    int m,n,i;

    scanf("%d %d",&m,&n);

    for(i=m>n?m:n;i<=n*m;i++)

    {

        if(i%m==0&&i%n==0)

            break;

    }

    printf("%d\n",i);

    return 0;

}*/

/*  *号问题   */

/*#include<stdio.h>

int main()

{

    int i,j;

    for (i=1;i<=5;i++)

    {

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

        {

            printf("%2c",'*');

        }

        printf("\n");

    }

        

    return 0;

}*/

/*

#include<stdio.h>

int main()

{

    int i,j,k;

    for(i=1;i<=5;++i)

    {

        for(j=1;j<=5-i;j++)

            printf(" ");

        for(k=1;k<=2*i-1;k++)

            printf("%c",'*');

        printf("\n");

    }

    return 0;

}*/

/*

#include <stdio.h>

int main()

{

    int i,j,k;

    char a[5][5];

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

    {

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

        {

            a[i][j]='*';

            printf("%c",a[i][j]);

        }

        printf("\n");

        for (k=1;k<=i+1;k++)

            printf("\40");

    }

    printf("\n");

    return 0;

}

*/

/*回文数猜想*/

/*

#include <stdio.h>

int main()

{

    int num,sum,reverse,n=0;

    scanf("%d",&sum);

  while (1) 

  {

      num=sum;

      *求出倒序数*

      reverse=0;

      while (sum!=0)

      {

          reverse=reverse*10+sum%10;

          sum/=10;

      }*判度是否是回文数*

      if(reverse==num)

      {

            printf("%d is huiwen\n",num);

            break;

      }

          sum=reverse+num;

            ++n;

            printf("第%d步:%d+%d=%d\n",n,num,reverse,sum);

  }

    return 0;

    }

*/

/*函数递归调用*/

/*#include <stdio.h>

long sum(int n);

long fun(int n);

int main()

{

    int n;

    scanf("%d",&n);

    printf("1!+...+n!=%ld\n",sum(n));

    return 0;

}

long sum(int n)

{

   int i;

   long result=0;

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

   {

   result+=fun(i);

   }

   return result;

   

   

}

long fun(int n)

{

    int i;

    long result=1;

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

    {

    result*=i;    

    }

    return result;

}*/

/*哥特巴赫猜想*/

/*#include <stdio.h>

#include <math.h>

int main()

{  int i,j,k,n,even;

    scanf("%d",&even);

    

        for(i=2;i<=even/2;i++)

        {

            for(j=2;j<=sqrt(i);j++)

                if(i%j==0)

                    break;

                    if(j>sqrt(i));

            {

                n=even-i;

                for(k=2;k<=sqrt(n);k++)

                    if(n%k==0)

                        break;

                if(k>sqrt(n))

                    printf("%d=%d+%d\n",even,i,n);

            }

        }

    

    return 0;

}*/

/*十进制转为任意进制*/

/*#include <stdio.h>

int main()

{

    int i,j,n,m,a[100];

    printf("请输入一个十进制数:\n");

    scanf("%d",&n);

    printf("输入要转化的进制:\n");

    scanf("%d",&m);

    j=0;

    while(n>0)

    {

        a[j]=n%m;

        n/=m;

        ++j;

    }

    printf("转化为%d进制的数:\n",m);

    for(i=j-1;i>=0;--i)

    {

        if(a[i]<10)

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

        else if(a[i]>=10&&a[i]<=35)

            printf("%c\n",'a'+a[i]-10);

        else

            printf("'%d'\n",a[i]);

    }

    return 0;

}*/

/*输入10个数,输出最大的数该数是第几个数*/

/*#include <stdio.h>

int main()

{

    int max(int x,int y);

    int
bf7b
a[10],i,m,n;

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

    {

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

        printf("\n");

    }

    for (i=1,m=a[0],n=0;i<10;i++)

    {

        if(max(m,a[i])!=m)

        {

            m=a[i];

            n=i;

        }

    }

    printf("the number is di %d shu %d\n",n+1,m);

}

int max(int x,int y)

{

    return(x>y?x:y);

}*/

/*

#include <stdio.h>

int main()

{

    float average(float a[],int n);

    float a1[5]={1,1,1,1,1};

    float a2[10]={1,1,1};

    printf("%f\n",average(a1,5));

    printf("%f\n",average(a2,10));

    return 0;

}

    float average(float a[],int n)

{

    int i;

    float aver,sum=a[0];

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

    {

        sum+=a[i];

        aver=sum/n;

    }

    return(aver);

}

*/

/*选择排序*/

/*

#include <stdio.h>

int main()

{

    int a[10]={10,9,8,7,6,5,4,3,2,1};

    int i,j,min,temp;

    int len=sizeof(a)/sizeof(a[0]);

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

    {

        min=i;

        for(j=i+1;j<len;j++)

        {

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

            {

                min=j;

            }

        }

        if(min!=i)

        {

            temp=a[i];

            a[i]=a[min];

            a[min]=temp;

        }

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

            printf("%d",a[j]);

        printf("\n");

    }

    return 0;

}

*/

/*冒泡排序*/

/*

#include <stdio.h>

int main()

{

    int a[10]={1,2,3,4,5,6,7,8,9,10};

    int len=sizeof(a)/sizeof(a[0]);

    int i,j,temp;

    for (i=0;i<len-1;i++)

    {

        for(j=0;j<len-1-i;j++)

        {

            if(a[j]<a[j+1])

            {

            temp=a[j];

            a[j]=a[j+1];

            a[j+1]=temp;

            }

        }

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

                printf("%d",a[j]);

            printf("\n");

        

    }

    return 0;

}*/

/*静态局部变量*/

/*

#include <stdio.h>

int main()

{

    int fun(int n);

    int i;

    for (i=1;i<=5;i++)

        printf("%d!=%d\n",i,fun(i));

    return 0;

}

    int fun(int n)

{

    static f=1;

    f=f*n;

    return f;

}

*/

/*1-n*n的自然数构成的魔方阵*/

/*#include <stdio.h>

int main()

{

    int a[16][16],i,j,k,p,m,n;

    p=1;

    while (p=1)

    {

        printf("enter n(n=1~15):");

        scanf("%d",&n);

        if((n!=0)&&(n<=15)&&(n%2!=0))

            p=0;

    }

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

        for(j=1;j<=n;j++)

            a[i][j]=0;

    j=n/2+1;

    a[1][j]=1;

    for(k=2;k<=n*n;k++)

    {

        i=i-1;

        j=j+1;

        if((i<1)&&(j>n))

        {

            i=i+2;

            j=j-1;

        }

        else

        {

            if(i<1)

                i=n;

            if(j>n)

                j=1;

        }

        if (a[i][j]==0)

            a[i][j]=k;

        else

        {

            i=i+2;

            j=j-1;

            a[i][j]=k;

        }

    }

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

    {

        for (j=1;j<=n;j++)

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

        printf("\n");

    }

    return 0;

}

*/

/*哥特巴赫猜想的函数调用*/

/*

#include <stdio.h>

int main()

{

    void fun(int x);

    int n;

    scanf("%d",&n);

    fun(n);

    return 0;

}*/

/*

int fun(int x)

{

    int i;

    for(i=2;i<=x;i++)

    {

        if(x%i==0)

            break;

    }

    if(i==x)

    printf("%d is zhi shu\n",x);

    else

        printf("%d is not zhi shu\n",x);

}*/

/*

void fun (int x)

{

    int i,j,even;

    for (i=2;i<=x/2;i++)

    {

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

            if(i%j==0)

                break;

    if(i==j)

    {

    even=x-i;

    for (j=2;j<even;j++)

    {

        if(even%j==0)

            break;

    }

        if(even==j)

            printf("%d=%d+%d\n",x,i,even);

    }

    }

}*/

/*完全数用数组的形式*/

/*

#include <stdio.h>

#define N 1000

int main()

{

    int is_perfectnumber(int x);

    int a
,i,j;

    for (i=1;i<=N;i++)

    {

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

            a[j]=i;

     if (1== is_perfectnumber (a[j]))

    printf("%d是完全数\n",a[j]);

    }

    return 0;

}

int is_perfectnumber(int x)

{

    int j,s=0;

    for(j=1;j<=x/2;j++)

    {

        if(x%j==0)

            s+=j;

    }

        if(s==x)

    return 1;

        else

            return 0;

}

*/

/*

#include <stdio.h>

int main()

{

    int fun(int x);

    int i;

    for(i=1;i<=1000;i++)

        if (fun(i)==1)

            printf("%d\n",i);

    return 0;

}

int fun (int x)

{

int j,sum=0;

for(j=1;j<=x/2;j++)

{

    if(x%j==0)

        sum+=j;

}

if(sum==x)

    return 1;

else

    return 0;

}

*/

/*猴子吃桃子问题递推*/

/*

#include <stdio.h>

int main()

{

    int f(int day);

    printf ("%d",f(1));

    return 0;

}

int f(int day)

{

    if(day==10)

        return 1;

    else

    return (2*(f(day+1)+1));

}

*/

/*

#include <stdio.h>

int main()

{   

    extern count;*外部变量声明把作用域扩展到此处*

    int f(int x);

    int n;

    scanf("%d",&n);

    f(n);

    printf("共用了%d步\n",count);

    return 0;

}

int count=0;*外部变量从定义处到函数结尾*

int f(int x)

{

    if(x==1)

    {

        printf("%d ",x);

        count++;

        return;

    }

    if(x%2==0)

    {

        x=x/2;

        printf("%d ",x);

        f(x);

        count++;

    }

    else

    {

        x=3*x+1;

        printf("%d ",x);

        f(x);

        count++;

    }

        return count;

}

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐