吉林大学超星学习通02(1)
打了九天,進步是可見的。當時實踐入門直接開打,導致上課都在摸魚...現在改成了向后自學。用最新手的方式打出來的代碼,用作保存記錄。
1.?(程序題)
題目編號:Exp02-Basic01,GJBook3-03-03
題目名稱:遞增排序
題目描述:任意三個實數a、b、c,按照從小到大的順序輸出。
輸入:輸入三個實數(測試數據均只有一位小數)。
輸出:按照從小到大順序輸出之前輸入的三個實數,以一個西文空格間隔,且每個實數小數點后保留1位。
樣例:
輸入: 2.3??5.6??1.2 輸出: 1.2?2.3?5.6 #include<stdio.h>int main(){float a,b,c,t;scanf("%f%f%f",&a,&b,&c);if(a<b) { t=a;a=b;b=t;}if(a<c) {t=a;a=c;c=t;}if(b<c){t=b;b=c;c=t;}printf("%.01f %.01f %.01f",c,b,a);}入門的時候打過,當時覺得很妙,后面了解到了條件運算符(?:),覺得這個也很不錯,還沒用這個試過。
2.?(程序題)
題目編號:Exp02-Basic02
題目名稱:括號統計
題目描述:編程序,判斷給定以字符‘@’結束的字符序列中‘(’與‘)’、‘[’與‘]’、‘{’與‘}’的個數是否相等。
輸入:輸入一串以字符‘@’結束的字符序列,其間可能含有若干空白字符。
輸出:個數不相等的括號(按花括號、方括號、圓括號的順序);如果三種括號的個數都相等,輸出NULL。
樣例1:
樣例2:
輸入:{a??+??b*c+(d/e-f]}@ 輸出:[]() #include<stdio.h>int main(){int a=0,b=0,c=0,d=0,e=0,f=0;char m=0;while(m!='@'){scanf("%c",&m);switch(m){case '{':a++;break;case '}':b++;break;case '[':c++;break;case ']':d++;break;case '(':e++;break;case ')':f++;break;default:break;}}if(a!=b) printf("{}");if(c!=d) printf("[]");if(e!=f) printf("()");if(a==b&&c==d&&e==f) printf("NULL");return 0;}這個當時看的c入門書有,但是沒想到把這兩個套在一起,這題屬于醍醐灌頂。
3.?(程序題)
題目編號 :Exp02-Basic03
題目名稱:數字求和
題目描述:給定一個整數a,以及另外的5個整數,問題是:這5個整數中,可以被a整除的整數和是多少?
?
輸入:輸入一行只包括6個小于100的整數,其中第一個整數是a,輸入保證a不為零。
輸出:輸出一行,給出一個整數,是5個數中可以被a整除的所有整數的和。
樣例1:
樣例2:
輸入:11?10?20?30?40?12 輸出:0 #include<stdio.h>int main(){int a,t=1,m=0,n=0;scanf("%d",&a);while(t<=5){scanf("%d",&m);if((m%a)==0) {n=n+m;}t=t+1;}printf("%d",n);return 0;}這題到第八題都不難,直到第九題狠狠把我給創了...到現在還擱這想為什么那個數能過呢...
4.5.6.7.8.跳過
9.?(程序題)
題目編號 :Exp02-Basic09,GJBook3例-04-10
題目名稱:斐波納契序列
問題描述:
開始,有一對小兔子。
?一個月后,變成大兔子開始懷孕;
兩個月后, 生出一對小兔子,這時共有兩對兔子(一對大兔子, 一對小兔子), 同時大兔子又再次懷孕;
?三個月后, 以前出生的小兔子變成大兔子,以前懷孕的大兔子又生出一對小兔子, 這時共有三對兔子(兩對大兔子, 一對小兔子), 所有大兔子又全部懷孕;
?四個月后, 以前出生的小兔子變成大兔子,以前懷孕的大兔子又各生出一對小兔子, 這時共有五對兔子(三對大兔子, 兩對小兔子), 所有大兔子又全部懷孕;
五個月后, 以前出生的小兔子變成大兔子,以前懷孕的大兔子又各生出一對小兔子, 這時共有八對兔子(五對大兔子, 三對小兔子), 所有大兔子又全部懷孕;
…… ……
假設在兔子的生養過程中沒有死亡。編程序,輸入 n , 計算 n 個月后,有多少對兔子, 并輸出。
提示:注意序列各項間的遞推關系。?
輸入:一個非負整數n,表示月份(n≤91)
輸出:n 個月后的兔子數(單位:對)
樣例1:輸入 0?? 輸出 1
樣例2:輸入 1?? 輸出 1
樣例3:輸入 2?? 輸出2
樣例4:輸入10?? 輸出89
#include<stdio.h> int main(void){long long w=2,u,v; //如果用int型的話,輸入50以上就會溢出int i,n;// int最大為2×10的9次方,而long long可以到9×10的18次方 u=1;v=1;i=2;scanf("%d",&n);if(n==1||n==2)w=1;while(i<n){u=v; //用三個變量遞推,算出w后u,v各向后進一位v=w;w=v+u;i++;}printf("%lld",w);return 0;}笑死,還沒想明白。開擺。
剩下的再說吧。
總結
以上是生活随笔為你收集整理的吉林大学超星学习通02(1)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C#中的Clipboard与Contex
- 下一篇: 过滤JSON中的特殊字符