《C語言程序設計-北京理工大學MOOC提交作業(yè).doc》由會員分享,可在線閱讀,更多相關《C語言程序設計-北京理工大學MOOC提交作業(yè).doc(44頁珍藏版)》請在裝配圖網上搜索。
第一周作業(yè)
【練習1】HelloWorld
成績
0
開啟時間
2014年10月21日 星期二 08:00
折扣
0.8
折扣時間
2014年12月7日 星期日 23:55
允許遲交
否
關閉時間
2014年12月7日 星期日 23:55
讓我們學習用C語言向世界問好。
“Hello World”示例程序最早出現(xiàn)于1972年,由貝爾實驗室成員Brian Kernighan撰寫的內部技術文件《Introduction to the Language B》之中。不久同作者于1974年所撰寫的《Programming in C: A Tutorial》,也延用這個示例。
一般來說,這是每一種計算機編程語言中最基本、最簡單的程序,亦通常是初學者所編寫的第一個程序。它還可以用來確定該語言的編譯器、程序開發(fā)環(huán)境,以及運行環(huán)境是否已經安裝妥當。將“Hello World”作為第一個示范程序,已經成為編程語言學習的傳統(tǒng)。
我們在這里繼續(xù)傳統(tǒng),這也是一種向前輩們致敬的方式之一吧!
最早的程序基本是這個樣子的:
#include
int main()
{
printf("Hello world.\n");
return 0;
}
請模仿上面的程序,看看是否可以通過編譯?如果你能通過這個簡單的程序,那就讓我們繼續(xù)完成后面的習題吧。
略
第二周作業(yè)
【練習2】學學scanf和printf的用法吧
成績
0
開啟時間
2014年10月21日 星期二 08:00
折扣
0.8
折扣時間
2014年12月7日 星期日 23:55
允許遲交
否
關閉時間
2014年12月7日 星期日 23:55
該如何處理 double 型的數據:如何定義變量類型?如何使用 scanf 函數?
如果已知圓柱的底面半徑 r ,以及高 h ,則可計算出圓柱的側面積 s=2 π r h ,體積 v=π r 2 h 。其中 π=3.1415926。
輸入:
第一行輸入圓柱的底面半徑 r
第二行輸入圓柱的高 h
輸出:
s=< 圓柱的側面積 >,v=< 圓柱的體積 >
要求
1. 所有變量都定義為雙精度類型
2. 結果精確到小數點后兩位。
作為練習題目:
我們已經給您編寫好了大部分的代碼,請您自己修改幾個地方,完成程序的剩余部分。
**********************************************分隔線************
#include
#define PAI 3.1415926
int main()
{
int r,h;
double s,v;
scanf("%d %d", );
s=2*PAI*r*h;
v=PAI*r*r*h;
printf("s=%.2f,v=\n",s, );
return 0;
}
**********************************************分隔線************
Code:
#include
#define PAI 3.1415926
int main()
{
int r,h;
double s,v;
scanf("%d %d",&r,&h);
s=2*PAI*r*h;
v=PAI*r*r*h;
printf("s=%.2f,v=%.2f\n",s,v);
return 0;
}
第三周作業(yè)
1、輸出字符的 ASCII 碼
成績
10
開啟時間
2014年10月21日 星期二 10:00
折扣
0.8
折扣時間
2014年11月5日 星期三 23:55
允許遲交
否
關閉時間
2014年11月12日 星期三 23:55
背景:
我們在計算機基礎中已經學過:字母在計算機中采用ASCII碼進行存儲。下面要從鍵盤上輸入任意一個字符,然后輸出該字符對應的ASCII碼。
輸入:
一個字符
輸出:
該字符對應的ASCII碼
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. A?
以文本方式顯示
1. TheASCIIofcharacterAis65.?
1秒
64M
0
測試用例 2
以文本方式顯示
1. Z?
以文本方式顯示
1. TheASCIIofcharacterZis90.?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 0?
以文本方式顯示
1. TheASCIIofcharacter0is48.?
1秒
64M
0
測試用例 4
以文本方式顯示
1. 1?
以文本方式顯示
1. TheASCIIofcharacter1is49.?
1秒
64M
0
測試用例 5
以文本方式顯示
1. +?
以文本方式顯示
1. TheASCIIofcharacter+is43.?
1秒
64M
0
Code:
#include
int main()
{
char ch;
scanf("%c",&ch);
printf("The ASCII of character %c is %d.",ch,ch);
return 0;
}
2、一年級的算術題
成績
10
開啟時間
2014年10月21日 星期二 10:00
折扣
0.8
折扣時間
2014年11月5日 星期三 23:55
允許遲交
否
關閉時間
2014年11月12日 星期三 23:55
背景:
小明上小學一年級了,老師已經教會了他們進行整數的 +、-、*、/、% 計算,下面老師開始出題,給出一個簡單的算術表達式,請小明給出計算結果。
輸入:
接受兩個整數,每個整數之間使用空格分隔。例如輸入格式為:123 444
輸出:
分別輸出按照整型數據進行 +、-、*、/、* 之后的運行結果。
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 103?
以文本方式顯示
1. 10+3=13?
2. 10-3=7?
3. 10*3=30?
4. 10/3=3?
5. 10%3=1?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 11-3?
以文本方式顯示
1. 11+-3=8?
2. 11--3=14?
3. 11*-3=-33?
4. 11/-3=-3?
5. 11%-3=2?
1秒
64M
0
Code
#include
int main()
{
int a, b;
char ch = 37;
scanf("%d%d",&a,&b);
printf("%d+%d=%d\n",a,b,a + b);
printf("%d-%d=%d\n",a,b,a - b);
printf("%d*%d=%d\n",a,b,a * b);
printf("%d/%d=%d\n",a,b,a / b);
printf("%d%c%d=%d\n",a,ch,b,a % b);
return 0;
}
3、判斷三角形的形狀
成績
10
開啟時間
2014年10月21日 星期二 10:00
折扣
0.8
折扣時間
2014年11月5日 星期三 23:55
允許遲交
否
關閉時間
2014年11月12日 星期三 23:55
要求
輸入三角型的三條邊,判斷三角形的形狀。假設輸入的三邊邊長均>0。
輸入:
三角型的3條邊的長度(int型)。
輸出:
等邊三角形:equilateral triangle
等腰三角形:isoceles triangle
不構成三角形:non-triangle
一般三角形:triangle
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 222?
以文本方式顯示
1. equilateraltriangle.?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 322?
以文本方式顯示
1. isocelestriangle.?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 131?
以文本方式顯示
1. non-triangle.?
1秒
64M
0
測試用例 4
以文本方式顯示
1. 345?
以文本方式顯示
1. triangle.?
1秒
64M
0
測試用例 5
以文本方式顯示
1. 232?
以文本方式顯示
1. isocelestriangle.?
1秒
64M
0
測試用例 6
以文本方式顯示
1. 223?
以文本方式顯示
1. isocelestriangle.?
1秒
64M
0
測試用例 7
以文本方式顯示
1. 311?
以文本方式顯示
1. non-triangle.?
1秒
64M
0
測試用例 8
以文本方式顯示
1. 113?
以文本方式顯示
1. non-triangle.?
1秒
64M
0
測試用例 9
以文本方式顯示
1. 543?
以文本方式顯示
1. triangle.?
1秒
64M
0
測試用例 10
以文本方式顯示
1. 453?
以文本方式顯示
1. triangle.?
1秒
64M
0
Code
#include
int main()
{
int a, b, c;
scanf("%d%d%d",&a,&b,&c);
if(a + b > c && a + c > b && b + c >a)
{
if(a == b && a == c && b == c)
{
printf("equilateral triangle.\n");
return 0;
}
if(a == b || a == c || b == c)
{
printf("isoceles triangle.\n");
return 0;
}
printf("triangle.\n");
}
else
{
printf("non-triangle.\n");
}
return 0;
}
第四周作業(yè)
1.【中學】計算時鐘的夾角
成績
10
開啟時間
2014年10月28日 星期二 08:25
折扣
0.8
折扣時間
2014年11月12日 星期三 08:25
允許遲交
否
關閉時間
2014年11月19日 星期三 08:25
背景:鐘面上的時針和分針之間的夾角總是在 0 ~180之間 ( 包括 0和180) 。舉例來說,在十二點的時候兩針之間的夾角為 0,而在六點的時候夾角為180,在三點的時候為90。本題要解決的是計算 12:00 到 11:59 之間任意一個時間的夾角。
輸入:
每組測試數據包含兩個數字:第一個數字代表小時 ( 大于 0 小于等于 12) ,第二個數字代表分 ( 在區(qū)間 [0, 59] 上 ) 。
輸出:
對應每組測試數據,用常用格式顯示時間以及這個時候時針和分針間的最小夾角,精確到小數點后一位。輸出格式如下所示。
再看一看,想一想:是否可以不用if 語句,只使用 printf 函數來簡化你的程序?
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 120?
以文本方式顯示
1. At12:00theangleis0.0degrees.?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 1230?
以文本方式顯示
1. At12:30theangleis165.0degrees.?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 60?
以文本方式顯示
1. At6:00theangleis180.0degrees.?
1秒
64M
0
測試用例 4
以文本方式顯示
1. 30?
以文本方式顯示
1. At3:00theangleis90.0degrees.?
1秒
64M
0
測試用例 5
以文本方式顯示
1. 33?
以文本方式顯示
1. At3:03theangleis73.5degrees.?
1秒
64M
0
測試用例 6
以文本方式顯示
1. 39?
以文本方式顯示
1. At3:09theangleis40.5degrees.?
1秒
64M
0
測試用例 7
以文本方式顯示
1. 40?
以文本方式顯示
1. At4:00theangleis120.0degrees.?
1秒
64M
0
測試用例 8
以文本方式顯示
1. 559?
以文本方式顯示
1. At5:59theangleis174.5degrees.?
1秒
64M
0
測試用例 9
以文本方式顯示
1. 420?
以文本方式顯示
1. At4:20theangleis10.0degrees.?
1秒
64M
0
測試用例 10
以文本方式顯示
1. 00?
以文本方式顯示
1. At0:00theangleis0.0degrees.?
1秒
64M
0
o Code
#include
int main()
{
int hour, minute, temp;
float angle, h_angle, m_angle;
scanf("%d%d",&hour,&minute);
temp = hour;
if(hour == 12) temp = 0;
h_angle = temp * 30.0 + minute * 0.5;
m_angle = minute * 6.0;
angle = h_angle > m_angle ? h_angle - m_angle : m_angle - h_angle;
if(angle > 180.0) angle = 360.0 - angle;
printf("At %d:%02d the angle is %.1f degrees.\n",hour,minute,angle);
return 0;
}
2.【日期】確定母親節(jié)
成績
10
開啟時間
2014年10月28日 星期二 10:35
折扣
0.8
折扣時間
2014年11月12日 星期三 10:35
允許遲交
否
關閉時間
2014年11月19日 星期三 10:35
母親節(jié)是每年的五月第二個星期天,針對輸入的年份,計算該年的哪一天是母親節(jié)。
輸入:
年份
輸出:
日期(5月的哪一天)
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 2014?
以文本方式顯示
1. 11?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 2015?
以文本方式顯示
1. 10?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 2012?
以文本方式顯示
1. 13?
1秒
64M
0
Code:
#include
int main()
{
int year, n, week, total, day;
scanf("%d",&year);
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
week = (year + year / 4 + year / 400 - year / 100 - 1) % 7;
for(n = 0;n < 5; n++)
{
if(n == 0) total = 0;
if(n == 1 || n == 3) total += 31;
if(n == 2) total += 29;
if(n == 4) total += 30;
}
}
else
{
week = (year + year / 4 + year / 400 - year / 100) % 7;
for(n = 0; n < 5; n++)
{
if(n == 0) total = 0;
if(n == 1 || n == 3) total += 31;
if(n == 2) total += 28;
if(n == 4) total += 30;
}
}
week = (week + total) % 7;
if (week == 0) week = 7;
day = 7 - week + 8;
printf("%d\n",day);
return 0;
}
3.【日期】計算星期
成績
10
開啟時間
2014年10月28日 星期二 10:40
折扣
0.8
折扣時間
2014年11月12日 星期三 10:40
允許遲交
否
關閉時間
2014年11月19日 星期三 10:40
給出任意一個年月日(年>1900),現(xiàn)在我們不能只是直接計算,要先判斷給出的日期是否合法,對于非法的日期要給出錯誤提示信息,合法的日期要再計算是星期幾。
輸入:
年 月 日
輸出:
0~6。
星期日用 0 表示,星期一用 1 表示,星期二用 2 表示......星期六用 6 表示。
假設年份大于1900。先想一想:我們現(xiàn)在只會使用 if 語句,該如何建立數學模型?
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 2013311?
以文本方式顯示
1. 1?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 20131315?
以文本方式顯示
1. monthiserror.?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 2013332?
以文本方式顯示
1. dayiserror.?
1秒
64M
0
Code:
#include
int main()
{
int year, month, day, n, week, total;
scanf("%d%d%d",&year, &month, &day);
if(year <= 1900){
printf("year is error.\n");
return 0;
}
if(month >= 13 || month < 1){
printf("month is error.\n");
return 0;
}
if(day < 0){
printf("day is error.\n");
return 0;
}
switch (month){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
if(day > 31)
{printf("day is error.\n"); return 0;}
break;
case 4:
case 6:
case 9:
case 11:
if(day > 30)
{printf("day is error.\n"); return 0;}
break;
case 2:if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
if(day > 29) {printf("day is error.\n"); return 0;}
}
else
{
if(day > 28) {printf("day is error.\n"); return 0;}
}
break;
}
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
{
week = (year + year / 4 + year / 400 - year / 100 - 1) % 7;
for(n = 0;n < month; n++)
{
if(n == 0) total = 0;
if(n == 1 || n == 3 || n == 5 || n == 7 || n == 8 || n == 10 ) total += 31;
if(n == 2) total += 29;
if(n == 4 || n == 6 || n == 9 || n == 11) total += 30;
}
}
else
{
week = (year + year / 4 + year / 400 - year / 100) % 7;
for(n = 0; n < month; n++)
{
if(n == 0) total = 0;
if(n == 1 || n == 3 || n == 5 || n == 7 || n == 8 || n == 10 ) total += 31;
if(n == 2) total += 28;
if(n == 4 || n == 6 || n == 9 || n == 11) total += 30;
}
}
week = (week + total + day - 1) % 7;
printf("%d\n",week);
return 0;
}
4.【中學】求最后3位數值(選做)
成績
0
開啟時間
2014年10月28日 星期二 10:45
折扣
0.8
折扣時間
2014年11月12日 星期三 10:45
允許遲交
否
關閉時間
2014年11月19日 星期三 10:45
小明在中學會求一個數的 n 次方了,但計算機還不會,請你來編寫一個程序吧。由于計算機比較“笨”,所以我們編寫程序的功能不用太強,只要能算出 a 的 n 次方的最后 3 位數就可以了。
輸入:
a 和 n 的值。假設 a<=150 。
輸出:
求 a 的 n 次方的最后 3 位數。
提示:再想一想,你的方法對嗎?你用的是什么數據類型?
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 100?
以文本方式顯示
1. Thelast3numbersis1.?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 28?
以文本方式顯示
1. Thelast3numbersis256.?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 10010?
以文本方式顯示
1. Thelast3numbersis000.?
1秒
64M
0
o Code:
o #include
o int main()
o {
o int a, n, i, total = 1;
o scanf("%d%d",&a,&n);
o if(n == 0) total = 1;
o for(i = 1; i <= n; i++)
o {
o total *= a;
o }
o total = total % 1000;
o printf("The last 3 numbers is %d.\n",total);
o return 0;
}
第五周作業(yè)
1.鍛煉身體吧
成績
10
開啟時間
2014年11月4日 星期二 07:50
折扣
0.8
折扣時間
2014年11月19日 星期三 07:50
允許遲交
否
關閉時間
2014年11月26日 星期三 07:50
題目描述:
沫沫,灰灰和渣渣去鍛煉身體,如果對他們跑步的距離分別只計整數 a、 b、 c,由于他們身高的差距,造成了 a<=b<=c,并且渣渣跑了N米之后就再也跑不動了。但是,按照他們事先的約定: 只有當 c*c==a*a+b*b 時,他們的鍛煉才有效果。
現(xiàn)在他們三個人想知道,如果渣渣的極限N已知,那么有多少種有鍛煉效果的跑步方案(即a, b, c有多少種可能的取值)。
輸入:
一個整數N,表示渣渣的體力極限, N <= 5000。
輸出:
一個整數,代表他們跑步方案的個數。
Hint:對于輸入N=5,有方案 a=3, b=4, c=5, 共一種。
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 5?
以文本方式顯示
1. 1?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 22?
以文本方式顯示
1. 6?
1秒
64M
0
Code:
#include
int main()
{
int a = 1,b = 1,c = 1,maxnum,count = 0;
scanf("%d",&maxnum);
for(c = 1;c <= maxnum;c++)
{
for(a = 1; a < c; a++ )
{
for(b = 1; b < c; b++)
{
if((c*c == a*a +b*b)&&(a <= b)) count++;
}
}
}
printf("%d\n",count);
return 0;
}
2.尋找特殊偶數
成績
10
開啟時間
2014年11月4日 星期二 08:00
折扣
0.8
折扣時間
2014年11月19日 星期三 08:00
允許遲交
否
關閉時間
2014年11月26日 星期三 08:00
背景
有一種特殊偶數,它每一位上的數字都兩兩不相同。我們現(xiàn)在需要找出四位數中某一區(qū)間內的這類偶數。
輸入
所要尋找的四位偶數的范圍。每組輸入有兩個數字:第一個數字是最小范圍;第二個數字是最大范圍。如果輸入遇到0,輸入結束。
輸出
列出此范圍內的所有特殊偶數,并且列出此范圍內特殊偶數的個數。
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 30003020?
2. 60406090?
3. 00?
以文本方式顯示
1. 3012301430163018?
2. counter=4?
3. 6042604860526054605860726074607860826084?
4. counter=10?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 9101?
2. 87-1?
3. 00?
以文本方式顯示
1. Error?
2. Error?
1秒
64M
0
Code:
#include
int main()
{
int maxnum, minnum, n, g, s, b, q, count = 0;
while(1){
scanf("%d%d",&minnum,&maxnum);
if(minnum == 0 && maxnum == 0) return 0;
if((minnum > 999 && minnum < 10000) && (maxnum > 999 && maxnum < 10000) && (maxnum >= minnum))
{
for(n = minnum; n <= maxnum; n++)
{
if(n % 2 == 0){
q = n / 1000;
b = n % 1000 / 100;
s = n % 100 / 10;
g = n % 10;
if(q != b && q != s && q != g && b != s && b != g && s != g)
{
count++;
printf("%d ",n);
}
}
}
printf("\n");
printf("counter=%d\n",count);
count = 0;
}
else
printf("Error\n");
}
return 0;
}
3.求最小 m 值
成績
10
開啟時間
2014年11月4日 星期二 08:05
折扣
0.8
折扣時間
2014年11月19日 星期三 08:05
允許遲交
否
關閉時間
2014年11月26日 星期三 08:05
求滿足下列不等式的最小 m。
1 + 2 + 3 + 4 + ...... + m ≥ n
例如:n=100,當 m =14 時,滿足:1+2+3+4+...+13=91<100,而 1
+2+3+4+......+14=105>100。
輸入:n
輸出:m
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 100?
以文本方式顯示
1. 14?
1秒
64M
0
Code:
#include
int main()
{
int max, i = 0, sum = 0;
scanf("%d",&max);
while(sum < max)
{
i++;
sum += i;
}
printf("%d\n",i);
}
第六周作業(yè)
數字正方型
成績
10
開啟時間
2014年11月12日 星期三 05:55
折扣
0.8
折扣時間
2014年11月26日 星期三 05:55
允許遲交
否
關閉時間
2014年12月3日 星期三 05:55
這是雙重循環(huán)的入門題目,大家來看看,你會做嗎?
輸入 n 的值,輸出如下例( n=4 )所示的由數字組成的正方型。
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
輸入:
n
輸出:
數字組成的正方型
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 1?
以文本方式顯示
1. 1?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 2?
以文本方式顯示
1. 12?
2. 34?
1秒
64M
0
測試用例 3
以文本方式顯示
1. 3?
以文本方式顯示
1. 123?
2. 456?
3. 789?
1秒
64M
0
測試用例 4
以文本方式顯示
1. 5?
以文本方式顯示
1. 12345?
2. 678910?
3. 1112131415?
4. 1617181920?
5. 2122232425?
1秒
64M
0
Code
#include
int main()
{
int n, x, y, count = 0;
scanf("%d",&n);
for(y = 0; y < n; y++)
{
for(x = 0; x < n; x++)
{
count++;
printf("%3d",count);
}
printf("\n");
}
return 0;
}
空心字符菱形
成績
10
開啟時間
2014年11月13日 星期四 06:10
折扣
0.8
折扣時間
2014年11月26日 星期三 06:10
允許遲交
否
關閉時間
2014年12月3日 星期三 06:10
輸入:
菱型起始字母和菱形的高度。
輸出:
參看測試用例,打印空心的由字符組成的菱形。
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. C4?
以文本方式顯示
1. C?
2. DD?
3. EE?
4. FF?
5. EE?
6. DD?
7. C?
1秒
64M
0
測試用例 2
以文本方式顯示
1. B2?
以文本方式顯示
1. B?
2. CC?
3. B?
1秒
64M
0
Code:
#include
int main()
{
int n, i, q, p;
char ch;
scanf("%c%d",&ch,&n);
for(i = 0; i < n; i++)
{
for(q = i; q < n - 1; q++)
printf(" ");
printf("%c",ch + i);
for(q = 0; q < (2 * i - 1); q++)
{
printf(" ");
if(q == 2 * i - 2)
printf("%c",ch + i);
}
printf("\n");
}
for(i = n - 2; i >= 0; i--)
{
for(q = i; q < n - 1; q++)
printf(" ");
printf("%c", ch + i);
for(q = 2 * i - 1; q > 0; q--)
{
printf(" ");
if(q == 1)
printf("%c", ch + i);
}
printf("\n");
}
return 0;
}
郵票組合
成績
10
開啟時間
2014年11月12日 星期三 06:20
折扣
0.8
折扣時間
2014年11月26日 星期三 06:20
允許遲交
否
關閉時間
2014年12月3日 星期三 06:20
背景:
我們寄信都要貼郵票,在郵局有一些小面值的郵票,通過這些小面值郵票中的一張或幾張的組合,可以滿足不同郵件的不同的郵資。
現(xiàn)在,郵局有4種不同面值的郵票。在每個信封上最多能貼5張郵票,面值可相同,可不同。
輸入:
四種郵票的面值。
輸出:
用這四種面值組成的郵資最大的從1開始的一個連續(xù)的區(qū)間。
說明:
如結果為10,則表明使用4張郵票可組合出1、2、3、4、5、6、7、8、9、10這些郵資。
名詞解釋:
郵資:就是你寄東西需要花多少錢。
郵票面額:是由國家發(fā)行的具有固定價格的花紙片,被稱為郵票。
如果你寄東西,郵局稱了重量,告訴你要240分。這樣你就要貼郵票了。如果現(xiàn)在郵局的郵票有面值為80分、50分、20分和10分的四種,你就可以采用不同的組合得到240的郵資,例如:采用3張80分的可以湊出240分;或者24張10分的湊起來240分也可以。顯然不同郵票的組合都可以得到同樣一種郵資。
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 141221?
以文本方式顯示
1. Themaxis71.?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 13712?
以文本方式顯示
1. Themaxis46.?
1秒
64M
0
Code:
#include
int main()
{
int i[5],t[3126],n,n1,n2,n3,n4,temp = 0;
i[0] = 0;
for(n = 1; n < 5; n++)
scanf("%d",&i[n]);
for(n = 0; n < 3126; n++)
t[n] = 0;
for(n = 0; n < 5; n++)
{
for(n1 = 0; n1 < 5; n1++)
{
for(n2 = 0; n2 < 5; n2++)
{
for(n3 = 0; n3 < 5; n3++)
{
for(n4 = 0; n4 < 5; n4++)
{
t[temp] = i[n] + i[n1] + i[n2] + i[n3] + i[n4];
temp++;
}
}
}
}
}
for(n = 0; n < 3124; n++)
{
for(n1 = n; n1 < 3125; n1++)
{
if(t[n] > t[n1])
{
temp = t[n];
t[n] = t[n1];
t[n1] = temp;
}
}
}
temp = 0;
for(n = 0; n < 3125; n++)
{
if(t[n] < t[n + 1] )
temp++;
if(temp != t[n + 1])
break;
}
printf("The max is %d.\n",temp - 1);
return 0;
}
程序講解示例:整數排排序
成績
0
開啟時間
2014年10月19日 星期日 03:15
折扣
0.8
折扣時間
2014年12月31日 星期三 03:15
允許遲交
否
關閉時間
2014年12月31日 星期三 03:15
有一組整數,要將它們從小到大排序,去掉其中重復的數值。
輸入:
第1行,輸入整數N,表明接下來將有N(<=100)個整數讀入。
第2~N行,輸入N個這個數。
輸出:排序后的整數(去掉重復的數值)
例如:
輸入:
3(回車)
7 5 7(回車)
輸出:5 7(回車)
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 3?
2. 755?
以文本方式顯示
1. 57?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 5?
2. 10022?
以文本方式顯示
1. 012?
1秒
64M
0
Code:
#include
int main()
{
int n, m, l, i[100], temp;
scanf("%d",&n);
for(m = 0; m < n; m++)
scanf("%d",&i[m]);
for(m = 0; m < n - 1; m++)
for(l = m + 1; l < n; l++)
{
if(i[m] > i[l])
{
temp = i[m];
i[m] = i[l];
i[l] = temp;
}
}
printf("%d",i[0]);
temp = i[0];
for(m = 1; m < n; m++)
{
if(temp < i[m])
{
printf(" %d",i[m]);
temp = i[m];
}
}
printf("\n");
}
臨時題
1.單詞排序
成績
10
開啟時間
2014年11月27日 星期四 02:55
折扣
0.8
折扣時間
2014年12月10日 星期三 02:55
允許遲交
否
關閉時間
2014年12月17日 星期三 02:55
輸入 5 個單詞,將它們按從大到小的順序排列后輸出。
輸入:
5個單詞
輸出:
排序后的順序
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. BASIC?
2. C++?
3. Pascal?
4. C?
5. Fortran?
以文本方式顯示
1. Pascal?
2. Fortran?
3. C++?
4. C?
5. BASIC?
1秒
64M
0
測試用例 2
以文本方式顯示
1. BASIC?
2. C++?
3. C?
4. Fortran?
5. Pascal?
以文本方式顯示
1. Pascal?
2. Fortran?
3. C++?
4. C?
5. BASIC?
1秒
64M
0
Code:
#include
#include
int main()
{
char s[5][100], t[100];
int i, n;
for(i = 0; i < 5; i++)
scanf("%s",s[i]);
for(i = 0; i < 4; i++)
{
for(n = i + 1; n < 5; n++)
{
if(strcmp(s[i],s[n]) < 0)
{
strcpy(t,s[i]);
strcpy(s[i],s[n]);
strcpy(s[n],t);
}
}
}
for(i = 0; i < 5; i++)
printf("%s\n",s[i]);
return 0;
}
2.尋找矩陣的鞍點
成績
10
開啟時間
2014年11月27日 星期四 03:00
折扣
0.8
折扣時間
2014年12月10日 星期三 03:00
允許遲交
否
關閉時間
2014年12月17日 星期三 03:00
二維數組中的鞍點,即該位置上的元素是所在行上的最大值,是所在列上的最小值。
二維數組也可能沒有鞍點。
輸入一個二維數組的行數n,列數m,二維數組的諸元素值;輸出數組的鞍點,以及鞍點所在的行列號。
輸入:第一行為矩陣的行數和列數,從第二行開始,為矩陣本身(假設輸入的矩陣只有0和1個鞍點)
3 4
1 3 5 3
2 3 4 1
3 2 6 7
輸出:
Point: a[1][2] == 4 (下標從0開始)
測試輸入
期待的輸出
時間限制
內存限制
額外進程
測試用例 1
以文本方式顯示
1. 34?
2. 1353?
3. 2341?
4. 3267?
以文本方式顯示
1. Point:a[1][2]==4?
1秒
64M
0
測試用例 2
以文本方式顯示
1. 34?
2. 1234?
3. 8436?
4. 9451?
以文本方式顯示
1. NoPoint?
1秒
64M
0
Code:
#include
#include
int main()
{
int i[100][100], m, n, x, y, temp, log = 0;
scanf("%d%d",&m,&n);
for(y = 0; y < m; y++)
{
鏈接地址:http://m.appdesigncorp.com/p-6646734.html