2019年3月

#include <stdio.h>

//数组名下标法
int main(){
    int i,a[10];
    for(i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++){
        printf("%5d",&a[i]);
    }
}

//指针下标法
    int i,a[10],*p;
    p=a;
    for(i=0;i<10;i++){
        scanf("%d",&p[i]);
    }
    for(i=0;i<10;i++){
        printf("%5d",i,p[i]);
    }

//数组名法
    int a[10],i;
    for(i=0;i<10;i++){
        scanf("%d",a+i);
    }
    for(i=0;i<10;i++){
        printf("%d",*(a+i));
    }

//指针变量法
    int a[10],i,*p;
    p=a;
    for(i=0;i<10;i++){
        scanf("%d",p+i);
    }
    for(i=0;i<10;i++){
        printf("%d",*(p+i));
    }

//指针自增运算
    int a[10],*p;
    for(p=a;p<a+10;p++){
        scanf("%d",p);
    }
    for(p=a;p<a+10;p++){
        printf("%d",*p);
    }

枚举,最小的放在第一个,先排再比。

#include <cstdio>
#define N 10

int main(){
    int a[N];
    for(int i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    int i,j,t;
    for(i=1;i<N;i++){    //从大到小插入排序 
        t=a[i];            //将等待插入的元素保存在t里 
        for(j=i;j>0&&a[j-1]>t;j--)    //把比t大的元素后移 
        a[j]=a[j-1];
        if(j!=i)    a[j]=t;        //将t插入到j 
    }
    for(i=0;i<N;i++){
        printf("%5d",a[i]);
    }
}

数列前几项为1,1,2,3,5,8,13,21,..。
是满足F(0)=1,F(1)=1,【递归边界】
F(n)=F(n-1)+F(n-2) (n>=2)的数列【递归式子】。

#include <cstdio>

int F(int n){
    if(n==0||n==1)  return 1;
    else return F(n-1)+F(n-2);
}

int main(){
    int n;
    scanf("%d",&n);
    printf("%d\n",F(n));
    return 0;
}

对一个序列A中的元素A[1]~A[i],令i从1到n枚举,进行n趟操作,每趟从待排序部分[i,n]中选择最小的元素,令其与待排序部分的第一个元素A[i]进行交换。n趟区间后,所有元素会是有序的。

枚举,最小的放在第一个,先比再排。

#include <cstdio>

int main(){
    int a[10];
    for(int i=0;i<10;i++){
        scanf("%d",&a[i]);
    }

    for(int i=0;i<10;i++){
        for(int j=i+1;j<10;j++){
            if(a[i]<a[j]){
                int k=a[i];
                a[i]=a[j];
                a[j]=k;
            }
        }
    }

    for(int i=0;i<10;i++){
        printf("%5d",a[i]);
    }
}