康宇的OJ愚人手账1
生活随笔
收集整理的這篇文章主要介紹了
康宇的OJ愚人手账1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
STDU 1582 排序
Problem Description
給你N(N<=100)個數,請你按照從小到大的順序輸出。
Input
輸入數據第一行是一個正整數N,第二行有N個整數。
Output
輸出一行,從小到大輸出這N個數,中間用空格隔開。
Sample Input
5
1 4 3 2 5
Sample Output
1 2 3 4 5
#include <stdio.h>int main(){int a[101];int n,m,i,j,t;scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} }}for(int i=0;i<n;i++)printf("%d ",a[i]);return 0; }錯因:交換兩數部分,把所有的i寫成了j
#include <stdio.h>int main(){int a[101];int n,m,i,j,t;scanf("%d",&n);for(int i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n-1;i++){for(j=0;j<n-i-1;j++){if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;} }}for(int i=0;i<n;i++)printf("%d ",a[i]);return 0; }STDU 1244 數列有序!
Problem Description
有n(n<=100)個整數,已經按照從小到大順序排列好,現在另外給一個整數m,請將該數插入到序列中,并使新的序列仍然有序。
Input
輸入數據包含多個測試實例,每組數據由兩行組成,第一行是n和m,第二行是已經有序的n個數的數列。n和m同時為0表示輸入數據的結束,本行不做處理。
Output
對于每個測試實例,輸出插入新的元素后的數列。
Sample Input
3 3
1 2 4
0 0
Sample Output
1 2 3 4
#include <stdio.h> int main(){int n,m,t,x;while(scanf("%d%d",&n,&m),m||n){t=1;//記錄m是否輸出 for(int i=0;i<n;i++){ scanf("%d",&x);//插空輸出m if(t&&m<=x){t=0;printf("%d ",m);}printf("%d",x);if(i!=n-1) putchar(' ');}if(n==0) printf(" %d",m);//n=0且m!=0時的特殊情況puts(""); }return 0; }錯因:參考https://blog.csdn.net/love_acm_love_mm/article/details/8991197后發現忘記討論m為最大值的情況。同時發現只要在判斷n=0且m!=0處修改一下判斷條件即可.
#include <stdio.h> int main(){int n,m,t,x;while(scanf("%d%d",&n,&m),m||n){t=1;//記錄m是否輸出 for(int i=0;i<n;i++){ scanf("%d",&x);//插空輸出m if(t&&m<=x){t=0;printf("%d ",m);}printf("%d",x);if(i!=n-1) putchar(' ');}if(t) printf(" %d",m);//n=0且m!=0時或者m為最大值的特殊情況puts(""); }return 0; }總結
以上是生活随笔為你收集整理的康宇的OJ愚人手账1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SOC 时钟源PLL锁相环详细介绍——I
- 下一篇: BCJC:62:计算机体系之灵魂→OS→