小垃圾myl的課後實踐

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    int y,m,d,ans=0,flag=0;
    printf("請輸入年月日,並用逗號隔開\n");
    scanf("%d,%d,%d",&y,&m,&d);
    if((y%400==0)||((y%100!=0)&&(y%4==0)))flag=1;//判斷是否爲閏年 
    m--;
    switch(m){
        case 11:ans+=30;
        case 10:ans+=31;
        case 9:ans+=30;
        case 8:ans+=31;
        case 7:ans+=31;
        case 6:ans+=30;
        case 5:ans+=31;
        case 4:ans+=30;
        case 3:ans+=31;
        case 2:ans=ans+flag+28;
        case 1:ans+=31;
    }
    ans+=d;
    printf("這一天是這一年的第%d天\n",ans);
    return 0;
}
計算某一天是這一年的第幾天

排序

/*
    題目:選擇排序
    做者:thmyl
    日期:2019-10-17 
*/ 
#include<iostream>
#include<cstdio>
#define maxn 1010
using namespace std;
int n,a[maxn];
int main(){
    printf("請輸入數字的個數:");
    scanf("%d",&n);
    printf("請輸入須要排序的數字:\n");
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++){
        for(int j=i+1;j<=n;j++){
            if(a[i]>a[j])swap(a[i],a[j]);
        }
    }
    printf("排好序後的數列爲:\n");
    for(int i=1;i<=n;i++)printf("%d ",a[i]);
    puts("");
    return 0;
}
選擇排序

 

/*
    題目:冒泡排序
    做者:thmyl
    日期:2019-10-17 
*/
#include<iostream>
#include<cstdio>
#define maxn 1010
using namespace std;
int n,a[maxn];
int main(){
    printf("請輸入數字的個數:");
    scanf("%d",&n);
    printf("請輸入須要排序的數字:\n");
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++)
        for(int j=n;j>i;j--)//從後向前浮動 
            if(a[j]<a[j-1])swap(a[j],a[j-1]);
    printf("排好序後的數列爲:\n");
    for(int i=1;i<=n;i++)printf("%d ",a[i]);
    puts("");
    return 0;
}
冒泡排序

 

/*
    ìa??:2???±??-DòáDμ??3Dò£?ê?3???óDDòêyáD
    ×÷??:thmyl
    è??ú:2019-10-18 
*/
#include<iostream>
#include<cstdio>
#define maxn 1010
using namespace std;
int a[maxn],n,mn,mark;
int *p[maxn];
bool vis[maxn];
int main(){
    printf("請輸入數字的個數:");
    scanf("%d",&n);
    printf("請輸入須要排序的數字:\n");
    for(int i=1;i<=n;i++)scanf("%d",&a[i]);
    for(int i=1;i<=n;i++){//?°?òμúi′óμ?êy 
        mn=0x7fffffff;
        for(int j=1;j<=n;j++)
            if(a[j]<mn&&!vis[j])
                mn=a[j],mark=j;
        p[i]=&a[mark];
        vis[mark]=1;
    }
    printf("排好序後的數列爲:\n");
    for(int i=1;i<=n;i++)printf("%d ",*p[i]);
    puts("");
    return 0;
}
用指針排序

指針

int *a[10]:定義了10個指向整型元素的指針ios

int (*a)[10]:定義了一個指針,指向一個有10個整型元素的數組數組

#include<iostream>
#include<cstdio>
using namespace std;
int b[10][10];
int (*a)[10];
int main(){
    int cnt=0;
    for(int i=0;i<10;i++)
        for(int j=0;j<10;j++){
            b[i][j]=cnt;
            cnt++;
        }
    a=b;
    for(int i=0;i<10;i++,a++){
        for(int *p=*a,j=0;j<10;j++,p++){
            printf("%d ",*p);
        }
        puts("");
    }
    return 0;
}
用(*a)[10]指向二維數組的用法

(2019.10.24)ide

#include<iostream>
#include<cstdio>
using namespace std;
const int N=10;
void input(int *a,int N){//事實上沒有定義數組,而是傳遞了數組的地址,設a[]或*a均可以,用法相同 
    for(int i=0;i<N;i++)scanf("%d",&a[i]);
}
void index(int *a,int N){
    for(int i=0;i<N;i++)
        for(int j=i+1;j<N;j++)
            if(a[i]>a[j])swap(a[i],a[j]);
}
void output(int *a,int N){
    for(int i=0;i<N;i++)printf("%d ",a[i]);
}
int main(){
    freopen("Cola.txt","r",stdin);
    int a[N];
    input(a,N);
    index(a,N);
    output(a,N);
    return 0;
}
函數的參數傳遞(數組)

 

#include<iostream>
#include<cstdio>
using namespace std;
const int N=10;
int main(){
    int a[N];
    void input(int *a,int N);
    void index(int *a,int N);
    void output(int *a,int N);
    input(a,N);
    index(a,N);
    output(a,N);
    return 0;
}
void input(int *a,int N){//事實上沒有定義數組,而是傳遞了數組的地址,設a[]或*a均可以,用法相同 
    for(int i=0;i<N;i++)scanf("%d",&a[i]);
}
void index(int *a,int N){
    for(int i=0;i<N;i++)
        for(int j=i+1;j<N;j++)
            if(a[i]>a[j])swap(a[i],a[j]);
}
void output(int *a,int N){
    for(int i=0;i<N;i++)printf("%d ",a[i]);
}
事先聲明函數
#include<iostream>
#include<cstdio>
#define N 10
using namespace std;
int main(){
    int a,b,c;
    scanf("%d%d",&a,&b);
    #ifdef N
        c=a+b;
    #else 
        c=a-b;
    #endif
    printf("%d",c);
    return 0;
}
#ifdef
//這裏的if後面的條件必須宏定義
#include<iostream>
#include<cstdio>
using namespace std;
int a,b;
int main(){
    scanf("%d",&a);
    #if(a>0)//Error
        b=a;
    #else 
        b=-a;
    #endif
    printf("%d\n",b);
    return 0;
}
#if
//不要輸出一個一個的數,要先組成一個數而後再輸出。
//聽說某sp考試能檢測你的輸出方式,嗯哼哼?
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
    int i=0,n,a[5],sum=0;
    printf("Please input a number in 5 single numbers:\n");
    scanf("%d",&n);
    while(n){
        a[i]=n%10;
        n/=10;
        i++;
    }
    for(int i=0;i<5;i++)
        for(int j=i+1;j<5;j++)
            if(a[j]>a[i])swap(a[i],a[j]);
    printf("The largest number is:");
    for(int i=0;i<5;i++){
        sum=sum*10+a[i];
    }
    printf("%d\n",sum);
    printf("The smallest number is:");
    i=4;
    while(a[i]==0)i--;
    swap(a[4],a[i]);
    sum=0;
    for(int i=4;i>=0;i--){
        sum=sum*10+a[i];
    }
    printf("%d\n",sum);
    return 0;
}
輸入一個5位數,輸出其組合的最大數和最小數

 

(2019.10.25)函數

標準輸入輸出spa

/*scanf*/
%f   float
%lf  double
%Lf  long double


/*printf*/
%f   float/double
%Lf  long double
浮點數
相關文章
相關標籤/搜索