版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1練習(xí)兩個(gè)整數(shù)之間的運(yùn)算
背景:基本練習(xí)。
輸入:接受兩個(gè)整數(shù),每個(gè)整數(shù)之間使用空格分隔。例如輸入格式為:123444
輸出:分別輸出進(jìn)行+、-、*、/、*之后的運(yùn)行結(jié)果。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{inta,b,c,d,e,f,g;
scanf(〃%d%d〃,&a,&b);
printf(z/%d+%d=%d\nz/,a,b,c=a+b);
printf(,/%d-%d=%d\n,/,a,b,d=a-b);
printf(〃%d*%d=%d\n〃,a,b,e=a*b);
printf(,z%d/%d=%d\nz,,a,b,f=a/b);
printfC,%d%%%d=%d\n,/,a,b,g=a%b);
)
結(jié)果:
輸入:103
輸出:
10+3=13
10-3=7
10*3=30
10/3=3
10%3=l
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{intxl,x2,x3,x4,x5,a,b;
scanf("%d%d〃,&a,&b);
xl=a+b;
x2=a-b;
x3=a*b;
x4=a/b;
x5=a%b;
printf(z,%d+%d=%d\n%d-%d=%d\n%d*%d=%d\n%d/%d=%d\n%d%%%d=%dz,,a,b,xl,a,b,x2,a,b,x3,a,b
,x4,a,b,x5);
)
結(jié)果:
輸入:123444
輸出:
123+444=567
123-444二-321
123*444=54612
123/444=0
123%444=123
1學(xué)習(xí)打印你的第一個(gè)圖形
背景:
我們已經(jīng)學(xué)習(xí)了printf函數(shù),這里給出了一個(gè)小程序,它運(yùn)行的結(jié)果是輸出一個(gè)由星號(hào)(*)組
成的4*4的正方形。
程序如下:
#include<stdio.h>
voidmain()
(
printf(〃****\n〃);
printf(〃****\n〃);
printf(〃****\n〃);
printf(〃****\n〃);
)
要求:
按照上面的程序范例,編寫一個(gè)小程序,要求輸出的是4行由*號(hào)組成的等腰三角形。
輸入:無。
輸出:指定圖形。
程序?qū)嵗?:
#include<stdio.h>
intmain(void)
(
printf(〃*\n〃);
printf(〃;
printf(〃*****\n〃);
printf(〃*******\n〃);
return0;
}
結(jié)果:
輸入:無
輸出:
*
***
*****
*******
程序?qū)嵗?:
#include〃stdio.h〃
main()
(
printf(z,*\n");
printf(〃***\n〃);
printf(,z*****\n〃);
printf(〃*******\n〃);
)
結(jié)果:
輸入:無
輸出:
*
***
*****
*****★★
1溫度轉(zhuǎn)換(06秋)
二目匕樂旦:
經(jīng)常出國旅行的驢友都知道,需要時(shí)時(shí)了解當(dāng)?shù)氐臍鉁貭顩r,但不少國家采用了不同的溫度計(jì)量
單位:有些使用華氏溫度標(biāo)準(zhǔn)(F),有些使用攝氏溫度(C)o現(xiàn)在,請(qǐng)你根據(jù)溫度轉(zhuǎn)換公式設(shè)計(jì)
一個(gè)溫度轉(zhuǎn)換程序,可以進(jìn)行溫度轉(zhuǎn)換。如果輸入攝氏溫度,顯示轉(zhuǎn)換的華氏溫度;如果輸入華
氏溫度,顯示轉(zhuǎn)換的攝氏溫度。
溫度轉(zhuǎn)換的公式為:F=(Cx9/5)+32;C=(F-32)x5/9;式中F—華氏溫度,C一攝氏溫度。
輸入:第一個(gè)數(shù)據(jù)(1或2)確定轉(zhuǎn)換的類型:華氏轉(zhuǎn)攝氏(1);攝氏轉(zhuǎn)華氏(2);
第二個(gè)數(shù)據(jù)是相應(yīng)需要轉(zhuǎn)換的溫度值。
輸出:相應(yīng)的轉(zhuǎn)換后的溫度值(保留小數(shù)點(diǎn)后2位)。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{inta;
floatx,y;
scanf&a,&x);
if(a==l)
{y=(x-32)*5.0/9.0;
printf(,zTheCentigradeis%.2f\n〃,y);
}
elseif(a==2)
{y=(x*9.0/5.0)+32;
printf("TheFahrenheitis%.2f\n〃,y);
)
)
結(jié)果:
輸入:1100
輸出:TheCentigradeis37.78
輸入:2-6.67
輸出:TheFahrenheitis19.99
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{floatC;inta;
scanf(〃%d%f,z,&a,&C);
switch(a)
{case1:printf(^TheCentigradeis%.2f\n〃,(032)*5/9);break;
case2:printf(z,TheFahrenheitis%.2f\n〃,(C*9/5)+32);break;
default:printf(〃error\n〃);)
)
結(jié)果:
輸入:10
輸出:TheCentigradeis-17.78
輸入:288
輸出:TheFahrenheitis190.40
2計(jì)算圓柱的側(cè)面積及體積
如果已知圓柱的底面半徑r,以及高h(yuǎn),則可計(jì)算出圓柱的側(cè)面積s=2Jirh,體積r2
ho其中n=3.1415926
輸入:第一行輸入圓柱的底面半徑r
第二行輸入圓柱的高h(yuǎn)
輸出:s=<圓柱的側(cè)面積>,v=<圓柱的體積>
要求
1.所有變量都定義為雙精度類型
2.結(jié)果精確到小數(shù)點(diǎn)后兩位
程序?qū)嵗?:
#include<stdio.h>
#include<math.h>
voidmain()
(
doubler,h,s,v,PAI=3.1415926;
scanf(z,%lf\n%lf,z,&r,&h);
s=2*PAI*r*h;
v二PAI*r*r*h;
printf(zzs=%.2f,v二%.2f\n〃,s,v);
)
結(jié)果:
輸入:
2
8
輸出:s=100.53,v=100.53
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
doublepi=3.1415926;
intr,h;
scanf(〃%d〃,&r);
scanf(級(jí)d〃,&h);
printfCs=%5.2f,v=%5.2f\n”,2*pi*r*h,pi*r*r*h);
)
輸入:
5
10
輸出:s=314.16,v=785.40
3計(jì)算時(shí)鐘的夾角
背景:
鐘面上的時(shí)針和分針之間的夾角總是在~之間(包括和)。舉例來說,在十二點(diǎn)的時(shí)候兩針
之間的夾角為,而在六點(diǎn)的時(shí)候夾角為,在三點(diǎn)的時(shí)候?yàn)?。本題要解決的是計(jì)算12:00到
11:59之間任意一個(gè)時(shí)間的夾角。
輸入:每組測試數(shù)據(jù)包含兩個(gè)數(shù)字:第一個(gè)數(shù)字代表小時(shí)(大于0小于等于12),第二個(gè)數(shù)
字代表分(在區(qū)間[0,59]±)o
輸出:對(duì)應(yīng)每組測試數(shù)據(jù),用常用格式顯示時(shí)間以及這個(gè)時(shí)候時(shí)針和分針間的最小夾角,精確到
小數(shù)點(diǎn)后一位。輸出格式如下所示。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{floatx,y,z;
scanf(〃%f%f”,&x,&y);
z=6*y-(30*x+y/2);
{if(z<=-180)z+=360;
elseif(z<0)z=-z;
elseif(z>=180)z=360-z;
elsez=z;}
if(y<10)printf(Z/At%.Of:0%.Oftheangleis%.Ifdegrees.x,y,z);
elseprintfCAt%.OfOftheangleis%.Ifdegrees.x,y,z);
)
輸入:120
輸出:At12:00theangleis0.0degrees.
程序?qū)嵗?:
#include<stdio.h>
#include<math.h>
main()
{intx,y;floatz;
scanf(〃%d/d〃,&x,&y);
z=fabs(30*x-(float)y*l1/2);
z=z>180?360-z:z;
if(y<10)printf(z,At%d:0%dtheangleis%.Ifdegrees.\n,z,x,y,z);
elseprintf(〃At%d:%dtheangleis%.Ifdegrees.\n〃,x,y,z);
)
結(jié)果:
輸入:1230
輸出:At12:30theangleis165.0degrees.
4判斷三角形的形狀
要求:
輸入三角型的三條邊,判斷三角形的形狀。假設(shè)輸入的三邊邊長均>0。
輸入:三角型的3條邊的長度(int型)。
輸出:等邊三角形:equilateraltriangle
等腰三角形:isocelestriangle
不構(gòu)成三角形:non-triangle
一般三角形:triangle
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{inta,b,c;
scanf(,z%d%d%dz,,&a,&b,&c);
if(a+b<=c||a+c<=b||b+c<=a)
printfC'non-triangle.,z);
elseif(a二二b&&b二二c)
printf(,zequilateraltriangle.z/);
elseif(a二二b&&b!=c||a==c&&c!=b||b==c&&c!=a)
printf(,zisocelestriangle.z,);
elseprintf(z/triangle.z/);
)
結(jié)果:
輸入:222
輸出:equilateraltriangle.
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
inta,b,c;
scanf(〃%d%d%d〃,&a,&b,&c);
if(a二二b&&b二二c&&c二二a)
printfC'equilateraltriangle.\n〃);
elseif(a+b>c&&a+c>b&&b+c>a)
(a==b||b==c||c==a)?printf(^isocelestriangle.\n〃):printf("triangle.\n〃);
elseprintf(z,non-triangle.\nz,);
}
結(jié)果:
輸入:131
輸出:non-triangle.
5求解一元二次方程
初中的時(shí)候我們就會(huì)求解一元二次方程了,下面讓我們來教計(jì)算機(jī)如何求解。輸入a,b,c,就
一元二次方程ax2+bx+c=0的根。
輸入:假設(shè)a,b,c均int。
輸出:要求輸出的根為double型,保留6位小數(shù)。
程序?qū)嵗?:
#include〃stdio.h〃
#include"math.
voidmain()
{inta,b,c,a2;
doublexl=0,x2=0,q;
scanf(〃%d%d%d”,&a,&b,&c);
q二b*b—4*a*c;
a2=2*a;
if(a==0)
{if(b==O)
printf("Inputerror!\n,z);
elseprintf(〃x=%,6f\n”,-c*L0/b);
)
elseif(q>0)
printf(/zxl=%.6f\nx2=%.6f\nz/,(-b+sqrt(q))/a2,(-b-sqrt(q))/a2);
elseif(q==0)
printf("xl==x2=%.6f\n”,-b*L0/a2);
elseif(q<0)
{if(b=0)printf(//xl=%.6fi\nx2=%.6fi\n”,sqrt(-q)/a2,-sqrt(~q)/a2);
else
printf("xl=%,6f+%.6fi\nx2=%.6f-%.6fi”,-b*L0/a2,sqrt(-q)/a2,-1.0*b/a2,sqrt(-q)/a2);
)
)
結(jié)果:
輸入:000
輸出:Inputerror!
輸入:222
輸出:
xl=-0.500000+0.8660251
x2=-0.500000-0.866025i
程序?qū)嵗?:
#include<stdio.h>
#include<math.h>
voidmain()
doublea,b,c,d;
scanfC%lf%lf%ir,&a,&b,&c);
d=b*b-4*a*c;
if(a==0&&b==0)printf("Inputerror!\n,z);
elseif(a==0)printf(z/x=%lf\nz/,c==0?0:-c/b);
elseif(d=0)printfCxl=x2=%.61f\n〃,b=O?O:-b/(2*a));
elseif(d>0)printf(/zxl=%lf\nx2=%lf\n,z,(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a));
elseif(b=0)printf(,,xl=%lfi\nx2=-%lfi\nz,,sqrt(-d)/(2*a),sqrt(-d)/(2*a));
else
printf(/zxl=%lf+%lfi\nx2=%lf-%lfi\n/z,-b/(2*a),sqrt(-d)/(2*a),-b/(2*a),sqrt(-d)/(
2*a));
}
結(jié)果:
輸入:1000
輸出:xl=x2=0.000000
你會(huì)輸出一行星號(hào)嗎?(本題不記分噢)
我們才開始上機(jī),現(xiàn)在需要我們用最簡單得辦法,在一行中輸出N個(gè)星號(hào)。
輸入:N值
輸出:一行中N個(gè)星號(hào)。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
intn,i;
scanf("%d",&n);
for(i=l;i<=n;i++)
printf("*〃);
printf(〃\n〃);
)
結(jié)果:
輸入:4
輸出:****
輸入:8
輸出:********
6計(jì)算SUM的值
已知公式:SUM=1+1/2+1/3+1/4+...+1/n
輸入:n
輸出:表達(dá)式sum的值。結(jié)果保留6位小數(shù)。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
intn,k;
doublesum;
scanf(〃%d〃,&n);
sum=l.0;
for(k=2;k<=n;k++)
sum=sum+1.0/k;
printf(,zsum=%.61f\n〃,sum);
)
結(jié)果:
輸入:1
輸出:sum=l.000000
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
doublesum,i;
intn;
scanf(〃%d〃,&n);
for(i=l,sum=0;i<=n;i++)
sum=sum+l/i;
printf("sum=%.61f〃,sum);
)
結(jié)果:
輸入:3
輸出:sum=1.833333
7貪吃的猴子
有一只猴子,第一天摘了若干個(gè)桃子,當(dāng)即吃了一半,但還覺得不過癮,就又多吃了一個(gè)。第
2天早上又將剩下的桃子吃掉一半,還是覺得不過癮,就又多吃了兩個(gè)。以后每天早上都吃了前
一天剩下的一半加天數(shù)個(gè)(例如,第5天吃了前一天剩下的一般加5個(gè))。到第n天早上再想吃
的時(shí)候,就只剩下一個(gè)桃子了。
輸入:天數(shù)n
輸出:第一天的桃子個(gè)數(shù)
程序?qū)嵗?:
#include<stdio.h>
voidmain()
{intn,i,y;
scanf(〃%d”,&n);
for(i=n-l,y=l;i>=l;i-)
y=2*(i+y);
if(y=l)printf("Themonkeygot%dpeachinfirstday.〃,y);
if(y!=1)printf(""Themonkeygot%dpeachsinfirstday.”,y);
)
結(jié)果:
輸入:3
輸Hl:Themonkeygot14peachsinfirstday.
8求最后3位數(shù)值
中學(xué)時(shí)我們就會(huì)求一個(gè)數(shù)的n次方了,但計(jì)算機(jī)不會(huì),請(qǐng)你來編寫一個(gè)程序吧。由于計(jì)算機(jī)比
較笨〃,所以我們編寫程序的功能不用太強(qiáng),只要能算出a的n次方的最后3位數(shù)就可以了。
輸入:和n的值。假設(shè)*=150o
輸出:求a的n次方的最后3位數(shù)。
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
inti,x,y,m=l;
scanf(〃%d&x,&y);
for(i=l;i<=y;i++)
m=m*x%1000;
if(m==0)
printf(,zThelast3numbersis000.\n〃);
else
printf(^Thelast3numbersis%d.\n〃,m);
)
結(jié)果:
輸入:100
輸出:Thelast3numbersis1.
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(inta,n,i,s;
scanf(〃%d%d”,&a,&n);
i=l;s=l;
while(i<=n)
{s=s*a%1000;
i++;}
if(n!=0){printf(,zThelast3numbersis%0.3d.\n,z,s);}
else{printf(""Thelast3numbersis%d.\n〃,s);)
)
結(jié)果:
輸入:10010
輸出:Thelast3numbersis000.
9分?jǐn)?shù)的四則運(yùn)算
在小學(xué)時(shí)我們就學(xué)習(xí)了分?jǐn)?shù)的四則運(yùn)算,即對(duì)兩個(gè)分?jǐn)?shù)進(jìn)行加、減、乘、除等運(yùn)算,現(xiàn)在我們嘗
試下用C語言來實(shí)現(xiàn)。
輸入:分?jǐn)?shù)1操作符分?jǐn)?shù)2
輸出:計(jì)算結(jié)果
要求:
計(jì)算結(jié)果使用分?jǐn)?shù)表示,并且為最簡化。例如結(jié)果為2/6,則被簡化為1/3
程序?qū)嵗齃
#include<stdio.h>
intmain()
(
inta,b,c,d,e,f,x,y,z;
charg;
scanfC%d/%d%c%d/%d〃,&a,&b,&g,&c,&d);
if(g==,+'){e=a*d+b*c;f=b*d;}
if(g==,-'){e=a*d-b*c;f=b*d;}
if(g==,*,){e=a*c;f=b*d;}
if(g==,r){e=a*d;f=b*c;}
x=e;y=f;z=x%y;
if(z!=O)
(
while(z!=0)
{x=y;y=z;z=x%y;}
e=e/y;f=f/y;
if(f>0)printf("%d/%d%c%d/%d=%d/%d”,a,b,g,c,d,e,f);
if(f<0)printf(z,%d/%d%c%d/%d=%d/%d,z,a,b,g,c,d,-e,-f);
}
else{printf(,z%d/%d%c%d/%d=%dz,,a,b,g,c,d,e/f);}
printf(〃\n〃);
return0;
)
結(jié)果:
輸入:1/3+1/2
輸出:1/3+1/2=5/6
程序?qū)嵗?:
#include,zmath.h〃
#include<stdio.h>
voidmain()
(
inta,b,c,d,m,n,x,y,v;charz;
scanf(〃%d/%d%c%d/%d〃,&a,&b,&z,&c,&d);
switch(z)
{case('+'):m=a*d+b*c;n=b*d;break;
casem=a*d-b*c;n=b*d;break;
case('*'):m=a*c;n=b*d;break;
case('/'):m=a*d;n=b*c;break;
x=fabs(m);y=fabs(n);v=x%y;
while(v!=O)
{x=y;y=v;v=x%y;}
if(m/y==O)printf(/z%d/%d%c%d/%d=0\nz/,a,b,z,c,d);
elseif(n/y==l)printf(z,%d/%d%c%d/%d=%d\n”,a,b,z,c,d,m/y);
elseprintf("%d/%d%c%d/%d=%d/%d\nz/,a,b,z,c,d,m/y,n/y);
}
結(jié)果:
輸入:1/2+2/6
輸出:l/2+2/6=5/6
10黑色星期五
在西方,,星期五和數(shù)字13都代表著壞運(yùn)氣,兩個(gè)不幸的個(gè)體最后結(jié)合成超級(jí)不幸的一天。所以,
不管哪個(gè)月的十三日又恰逢星期五就叫''黑色星期五”。
輸入:年份
輸出:判斷該年是否包含黑色星期五,如包含,給出具體日期
程序?qū)嵗?:
ttinclude"stdio.h"
voidmainO
(
intyear,month,day,i,k=0,ruinian,n;
inta[12]={6,2,2,5,0,3,5,1,4,6,2,4};
intb[12]={6,2,3,6,1,4,6,2,5,0,3,5},c[12]={0};
scanfftyear);
n=((year%400)*365+(year%400+3)/4-(year%400)/100+5)%7;
ruinian=(year%4==0&&year%100!=0||year%400==0);
for(i=0;i<12;i++)
if((((ruinian==l)?b[i]:a[i])+n)%7==5)
(
c[i]=l;
k++;
)
printf(vThere%s%dBlack%sinyear
%d.\n%s:\n",(k==l)?"is":"are”,k,(k==l)?"Friday":"Fridays”,year,(k=l)?"Itis":"They
are");
for(i=0;i<12;i++)
if(c[i]==l)
printf(//%d/%d/13\n,/,year,i+1);
結(jié)果:
輸入:2006
輸出:
Thereare2BlackFridaysinyear2006.
Theyare:
2006/1/13
2006/10/13
程序?qū)嵗?:
#includez,stdio.h〃
voidmain()
{intm,y,k=0,i,w,a[6];
scanf(級(jí)d〃,&y);
for(m=l;m<=2;m++)
{w=(13+2*(m+12)+3*(m+13)/5+y-l+(y-1)/4-(y-1)/100+(y-1)/400)%7;
if(w==4)
{a[k]=m;k++;})
for(m=3;m<13;m++)
{w=(l3+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
if(w=4)
{a[k]=m;k++;}}
if(k==l){printf("Thereis1BlackFridayinyear%d.\nltis:\n%d/%d/13\n,z,y,y,a[0]);}
else{printf("Thereare%dBlackFridaysinyear%d.\n〃,k,y);
printf("Theyare:\n〃);
for(i=0;i<k;i++)
printf("%d/%d/13\n”,y,a[i]);}
)
結(jié)果:
輸入:2007
輸出:
Thereare2BlackFridaysinyear2007
Theyare:
2007/4/13
2007/7/13
11百馬百擔(dān)
有100匹馬,馱100擔(dān)貨,其中大馬馱3擔(dān),中馬馱2擔(dān),兩匹小馬馱1擔(dān)
輸入:無
輸出:大、中、小馬的個(gè)數(shù),用逗號(hào)分隔。例如:2,30,68
說明:大、中、小馬都必須有,結(jié)果中要列出所有的組合可能每個(gè)結(jié)果占一行
因?yàn)橛卸鄠€(gè)結(jié)果,結(jié)果的排序按照大馬的個(gè)數(shù)從少到多
程序?qū)嵗?:
#include<stdio.h>
voidmain()
intbigHorse,middleHorse,smallHorse;
bigHorse=O;
while(bigHorse<=33)
(
middleHorse=l;
while(middleHorse<50)
(
smal]Horse=100-bigHorse-middleHorse;
if(3*bigHorse+2*middleHorse+smallHorse/2==100&&smallHorse%2==0)
printf(,z%d,%d,%d\n〃,bigHorse,middleHorse,smallHorse);
middleHorse++;
}
bigHorse++;
)
)
結(jié)果:
輸入:無
輸出:
2,30,68
5,25,70
8,20,72
11,15,74
14,10,76
17,5,78
程序?qū)嵗?
#include<stdio.h>
voidmain()
(
inta,b,c;
for(a=0;a<=33;a++)
(
for(b=l;b<50;b++)
(
c=100-a-b;
if(3*a+2*b+c/2==100&&c%2=0)
printf(*%d,%d,%d\nz/,a,b,c);
}
)
)
結(jié)果:
輸入:無
輸出:
2,30,68
5,25,70
8,20,72
11,15,74
14,10,76
17,5,78
12零錢換整錢
小明去銀行存錢,拿了一堆硬幣。已知1角的硬幣厚度為1.8mm,5角的硬幣厚1.5mm,1
元的硬幣為2.0mm。小明將1角的硬幣放成一摞,將5角的硬幣硬幣放成一摞,將1元的硬
幣放成一摞,發(fā)現(xiàn)3摞硬幣一樣高。銀行正好把這些硬幣換成若干張面值為10元的紙幣。問
小明至少帶了多少錢的硬幣(元為單位),每種面值的硬幣有多少個(gè)?
輸入:無
輸出:1角的數(shù)量,5角的數(shù)量,1元的數(shù)量,總金額。(例如:20,30,40,50)
說明:在結(jié)果中只輸出各個(gè)對(duì)應(yīng)的數(shù)字即可
程序?qū)嵗?:
#include<stdio.h>
intyue(inta,intb)
(
intt;
t=a%b;
while(t)
{a=b,b=t,t=a%b;}
returnb;
)
intmain(void)
{intx,y,z;
x=18*15/yue(18,15);
x=x*20/yue(x,20);
z=y=x/18+x*5/15+x/2;
while(z%100)
{z+=y;}
printf(〃%d,%d,%d,%d\n”,z/y*x/18,z/y*x/15,z/y*x/20,z/10);
return0;
)
結(jié)果:
輸入:無
輸出:50,60,45,80
程序?qū)嵗?:
#include<stdio.h>
intmain()
{inti,j,k,a;
for(i=10;;i+=10)
{j=6*i/5;k=9*i/10;a=0.l*i+0.5*j+l.0*k;
if(a%10=0){printf(〃%d,%d,%d,%d\n”,i,j,k,a);break;}
}
return0;}
結(jié)果:
輸入:無
輸出:50,60,45,80
13找出最大素?cái)?shù)
素?cái)?shù)是指一個(gè)只能被1和它本身整除的數(shù),在數(shù)論中占有重要的研究地位,在當(dāng)代密碼學(xué)中也被
廣泛應(yīng)用。
輸入:
取值范圍
輸出:
該范圍內(nèi)的最大素?cái)?shù)
程序?qū)嵗?
#include<stdio.h>
?include<math.h>
intjudgeis(inta)
(
inti;
for(i=2;i<sqrt(a);i++)
{if(a%i==0){return0;}}
return1;
)
intmain()
(
intn;
scanf&n);
while(judgeis(n)==0){n一;}
printf(,/Themaxprimenumberis%d.z,,n);
return0;
)
結(jié)果:
輸入:100
輸出:Themaxprimenumberis97.
程序?qū)嵗?:
#include<stdio.h>
#include<math.h>
intIsPrime(intn){
inti;
for(i=2;i<=sqrt(n);i++)
if(n%i==0)return(0);
return(1);
)
voidmain(){
intn;
scanf("%d",&n);
for(;;n-)if(IsPrime(n))break;
printf(,zThemaxprimenumberis%d.\n〃,n);
)
結(jié)果:
輸入:5555
輸出:Themaxprimenumberis5531.
14空心的倒三角型
背景:
請(qǐng)根據(jù)要求打印可空心倒三角形。
輸入:
輸入三角形的高度(h>=0)o
輸出:
打印相應(yīng)的空心倒三角形。圖樣參見測試用例。
程序?qū)嵗?:
#include<stdio.h>
intmain(void)
(
intn,i,j;
scanf(〃%d〃,&n);
for(i=0;i〈n;i++)
{for(j=0;j<(2*n-l-i);j++)
{if(i-0||i==j||j==(-i+2*n-2))printf;
elseprintf(〃〃);
)
printf(〃\n〃);
)
return0;
)
結(jié)果:
輸入:3
輸出:
*****
**
*
程序?qū)嵗?:
#include〃stdio.h〃
voidmain()
{intr,1,h;
scanf(〃%d”,&h);
for(r=l;r<=2*h-l;r++)printf('*");
for(r=2;r<=h;r++)
{printf(〃\n〃);for(1=1;l<=2*h-r;1++)printf(〃%s〃,(l=r||l=2*h-r)?〃*〃:〃/z);}
)
結(jié)果:
輸入:5
輸出:
*********
★★
**
★★
*
15空心字符菱形
輸入:菱型起始字母和菱形的高度。
輸出:參看測試用例,打印空心的由字符組成的菱形。
程序?qū)嵗?:
?include〃stdio.h〃
#include"math,h”
voidmain()
{charc;intn,i,j;
scanf(,,%c%d//,&c,&n);
for(c=c+n-l,i=l-n;i<=n-l;i++)
{for(j=l;j<=2*n-l-abs(i);j++)
if(j==abs(i)+l||j==2*n-l-abs(i))printf(〃%c〃,c-abs(i));
elseprintf(zz〃);
printf(〃\n〃);
)
}
結(jié)果:
輸入:C4
輸出:
C
DD
EE
FF
EE
DD
C
程序?qū)嵗?:
#include,zstdio.h"
intmain()
(
inti,j,h;chare;
scanf("%c%d”,&e,&h);
for(i=l;i<=h;i++)
{for(j=l;j<=h+i-l;j++)
{if(j-h-i+l|Ij==h+iT)printf(繪c”,e+iT);
elseprintfC");}
printf("\n");
for(i=h+l;i<=2*h-l;i++)
{for(j=l:j<=3*h-i-l;j++)
{if(j=i-h+l||j==3*h-i-l)printfe+2*h-iT);
elseprintfC");}
printf("\n");
}
return0;
}
結(jié)果:
輸入:S3
輸出:
S
TT
UU
TT
S
16郵票組合(選作)
背景:我們寄信都要貼郵票,在郵局有一些小面值的郵票,通過這些小面值郵票中的一張或幾張
的組合,可以滿足不同郵件的不同的郵資?,F(xiàn)在,郵局有4種不同面值的郵票。在每個(gè)信封上最
多能貼5張郵票,面值可相同,可不同。
輸入:四種郵票的面值。
輸出:用這四種面值組成的郵資最大的從1開始的一個(gè)連續(xù)的區(qū)間。
說明:如結(jié)果為10,則表明使用4張郵票可組合出1、2、3、4、5、6、7、8、9、10這些郵資。
名詞解釋:
郵資:就是你寄東西需要花多少錢。
郵票面額:是由國家發(fā)行的具有固定價(jià)格的花紙片,被稱為郵票。
如果你寄東西,郵局稱了重量,告訴你要240分。這樣你就要貼郵票了。如果現(xiàn)在郵局的郵票有
面值為80分、50分、20分和10分的四種,你就可以采用不同的組合得到240的郵資,例如:
采用3張80分的可以湊出240分;或者24張10分的湊起來240分也可以。顯然不同郵票的組
合都可以得到同樣一種郵資。
程序?qū)嵗?:
/*Thisprogramistofindthemaxset*/
#include<stdio.h>
main()
inta,b,c,d,i,j,k,1;
staticints[1000];
scanf(z/%d%d%d%d,/,&a,&b,&c,&d);
for(i=0;i<=5;i++)
for(j=0;i+j<=5;j++)
for(k=0;k+i+j<=5;k++)
for(l=0;k+i+j+l<=5;l++)
if(a*i+b*j+c*k+d*l)s[a*i+b*j+c*k+d*l]++;
for(i=l;i<=1000;i++)
if(!s[i])break;
printf(,zThemaxis%d.\n〃,--i);
return0;
)
結(jié)果:
輸入:141221
輸出:Themaxis71.
程序?qū)嵗?:
#include〃stdio.h〃
inttotal,max;
intvalue[5],num[1000]={0};
voidfindmax(intn,intp)
{inti;
if(p<5)
for(i=n;i<=4;i++)
{total+=value[i];
if(max<total)max=total;
num[total]=1;
findmax(i,p+1);
total-=value[i];
)
)
intmain()
{inti;
for(i=l;i<=4;i++)
scanf(z,%d,z,&value[i]);
total=0;max=0;
findmax(1,0);
for(i=l;i<=max;i++)
if(!num[i])break;
printf("Themaxis%d.\n〃,i-1);
return0;
}
結(jié)果:
輸入:13712
輸出:Themaxis46.
17誰能出線
背景:
電視臺(tái)舉辦“超級(jí)學(xué)生”才藝大賽,由于報(bào)名人數(shù)狂多,所以要先進(jìn)行分組預(yù)賽。按規(guī)定,每10
名學(xué)生為個(gè)預(yù)賽小組,評(píng)委打出分?jǐn)?shù)(0~100分),各小組第一名可以進(jìn)入下一輪;如果有多名
學(xué)生得分相同都是第一名,則可同時(shí)進(jìn)入下一輪。
輸入:按順序給出一個(gè)小組10個(gè)人的最后得分(int),
輸出:能夠出線的學(xué)生序號(hào)(0~9)。
程序?qū)嵗?:
#include“stdio.h"
mainO
(
inti,maxa[10]={0},num,max=0,a[10];
for(i=0;i<10;i++)
scanf("%d”,&a[i]);/*輸入*/
for(i=0;i<10;i++)
(
if(a[i]>max)/*如果大于最大值*/
(
max=a[i];/*保存最大值*/
num=l;/*個(gè)數(shù)*/
maxa[0]=i;/*保存下標(biāo)*/
)
elseif(a[i]=max)/*如果等于最大值*/
(
maxa[num]=i;/*保存下標(biāo)*/
num++;
)
)
for(i=0;i<num;i++)/*輸出*/
printf(〃%d\n〃,maxa[i]);
)
結(jié)果:
輸入:
98
98
100
97
95
94
90
94
93
92
輸出:2
程序?qū)嵗?;
#include<stdio.h>
voidmain()
{inti,a[10],m=0;
for(i=0;i<10;i++){
scanf("%d”,&a[i]);
if(a[i]>m)m=a[i];
)
for(i=0;i<10;i++){
if(a[i]==m){
printf("%d\n",i);
}
}
)
結(jié)果:
輸入:
99
98
99
97
95
99
90
94
93
100
輸出:9
18等值數(shù)列段(06秋)
如果一個(gè)數(shù)列中的某一段(至少有兩個(gè)元素)的各元素值均相同,則稱之為等值數(shù)列段。等值數(shù)
列段中元素的個(gè)數(shù)叫做等值數(shù)列段的長度。
輸入:由N個(gè)元素組成的整數(shù)數(shù)列A(其中N<=50)
輸出:A中長度最大的所有等值數(shù)列段的始末位置,如果沒有等值數(shù)列段,則輸出Noequalnumber
list.
說明:
始末位置是指數(shù)組下標(biāo),即0表示第一個(gè)元素。
如果有多個(gè)同等長度的等值數(shù)列,只輸出第一個(gè)等值數(shù)列的起始位置。
當(dāng)在一個(gè)LIST中出現(xiàn)兩個(gè)等長的連續(xù)串的時(shí)候,我們的答案應(yīng)該是第一個(gè)等長串。
開始,輸入
程序?qū)嵗?:
#includez,stdio.h"
mainO
(
inti=0,j=0,k,n,max=0,maxnum=O,a[50];
scanf(〃刎〃,&n);
for(i=0;i<n;i++)
scanf(z,%d,z,&a[i]);/*輸入*/
for(i=j;i<n;i++)/*循環(huán)遍歷*/
(
if(a[i]==a[j])/*如果相臨的相等,i不變,繼續(xù)看相等字符有多長*/
(
whi1e(a[i]==a[++j]);/*循環(huán)直到不相等為止*/
if(maxnum〈j-i)/*判斷是否為最長*/
maxnum=j-i;/*保存長度*/
max=i;/*保存起始位置*/
)
)
if(maxnum>0)/*輸出*/
printf(z,Thelongestequalnumberlistisfrom%dto%d.\n,z,max,maxnum+max-1);
else
printf(^Noequalnumberlist.\n〃);
}
結(jié)果:
輸入:
5
12345
輸出:Noequalnumberlist.
程序?qū)嵗?:
#include〃stdio.h〃
voidmain()
(
inta,x[50],i,j,m=0,n=0;
scanf(〃%d〃,&a);
for(i=0;i<a;i++)
scanf(級(jí)d〃,&x[i]);
for(i=0;i<a-l;i=j)
{j=i+l;
while(x[j]==x[i]&&j<a)j++;
if(j-i-l>n-m){m=i;n=jT;}
)
if((n-m)==0)printf(,zNoequalnumberlist.\n〃);
elseprintf(Z/Thelongestequalnumberlistisfrom%dto%d.\n/z,m,n);
)
輸入:
結(jié)果:
6
101110
輸出:Thelongestequalnumberlistisfrom2to4.
19大家一起做游戲(06秋)
幼兒園的小朋友們剛學(xué)習(xí)了如何數(shù)數(shù),阿姨在下課時(shí)組織大家一起玩游戲。規(guī)則如下:所有的小
朋友繞成一圈,順序排號(hào),從第一個(gè)小朋友開始報(bào)數(shù),凡是報(bào)到固定數(shù)字(例如5)的,都退出
該游戲,直到只剩下一位小朋友游戲才中止。
每個(gè)小朋友都希望自己能有更多的練習(xí)數(shù)數(shù)的機(jī)會(huì),所以都希望成為最終被留下的那位。
現(xiàn)在,請(qǐng)大家?guī)托∨笥褌冇?jì)算一下,在第一次排號(hào)的時(shí)候排到第幾位才能成為最終被留下的
小朋友。
輸入:小朋友的個(gè)數(shù)?=50)要被練習(xí)的數(shù)字
輸出:最終被留下的小朋友的序號(hào)
說明:如“要被練習(xí)的數(shù)字”是5,則每次數(shù)到5的同學(xué)要退出該游戲
程序?qū)嵗?:
#include,,stdio.h〃
main()
(
intm,n,d,i,temp,a[100];
scanf("%d%d”,&n,&m);
for(i=0;i<n;i++)
a[i]=i+l;
temp=0;
d=0;
while(d〈nT)/*標(biāo)志次數(shù),n-1次后結(jié)束,這是將只剩一個(gè)小孩*/
for(i=0;i<n;i++)
if(a[i]!=0)/*小朋友還沒退出游戲*/
(
temp++;/*小朋友報(bào)數(shù)的數(shù)字*/
if(temp==m)/*小朋友這次該退出游戲*/
(
a[i]=0;/*在數(shù)組中表示出來*/
temp=0;/*報(bào)數(shù)從新開始*/
d++;/*退出人數(shù)加1*/
)
)
for(i=0;i<n;i++)/*輸出,尋找最后一個(gè)退出的小朋友*/
if(a[i]!=0)
printf(,zTheleftchildisNO%d.\n,z,a[i]);
)
結(jié)果:
輸入103:
輸出:TheleftchildisNO4.
程序?qū)嵗?:
#include<stdio.h>
voidmain()
(
inta[51],i,j,x,n;
scanf("%d%d〃,&n,&j);
for(i=0;i<=n-2;i++)a[i]=i+l;a[n-l]=0;x=n-l;
while(a[x]!=x)
{for(i=l;i<=j-l;i++)
x=a[x];
a[x]=a[a[x]];
}
printf(,zTheleftchildisNO%d.〃,x+1);
)
結(jié)果:
輸入:5015
輸出:TheleftchildisNO22.
20猜數(shù)字(選作)
有如下一組數(shù)字,其中每個(gè)數(shù)字都在1~63之間,
13579111315171921232527293133353739414345474951535557
596163
236710111415181922232627303134353839424346475051545558
596263
456712131415202122232829303136373839444546475253545560
616263
89101112131415242526272829303140414243444546475657585960
616263
1617181920212223242526272829303148495051525354555657585960
616263
3233343536373839404142434445464748495051525354555657585960
616263
現(xiàn)在需要編寫一個(gè)程序,當(dāng)從鍵盤輸入某數(shù)字在且僅在哪幾行出現(xiàn)了,該程序可以“猜”出這個(gè)
數(shù)字是幾。
輸入:程序的輸入是一串以空白符分開的數(shù)字,當(dāng)輸入0時(shí)表示輸入結(jié)束。
輸出:輸出猜到的數(shù)字。
程序?qū)嵗?:
#include<stdio.h>
main()
(
inti,re;
re=0;
scanf(繪d”,&i);
while(i){
re+=1?(i-1);
scanf&i);
}
printf(,z%d\n,/,re);
)
結(jié)果:
輸入:120
輸出:3
程序?qū)嵗?:
#include<stdio.h>
#include<math.h>
intmain()
{inta[7],i=0,x=0;
scanf(〃%d〃,;
while(a[i])
{i++;
scanf(〃%d〃,;
)
for(i=0;a[i];i++)
x=x+pow⑵a[i]-l);
printf(〃%d”,x);
return0;
)
結(jié)果:
輸入:34560
輸出:60
21小蜜蜂(選作)
一只小蜜蜂在如下圖所示的蜂窩上爬行。它爬行時(shí),只能從一個(gè)格爬到相鄰的大號(hào)格子中。
例如,從1號(hào)格子可以爬到2號(hào)或者3號(hào)格子,從2號(hào)則可以爬到3號(hào)或者4號(hào)格子。
請(qǐng)問從?個(gè)格子a爬到一個(gè)格子b一共有多少種可行的路線。
輸入:分別是起始點(diǎn)a和終止點(diǎn)b的編號(hào)。(a和b在r100之間,且*b。)
輸出:方案數(shù)量。
程序?qū)嵗?:
^include〃stdio.h〃
voidmain()
{inta,b,i;
doubleal,a2,t;
scanf(,/%d%d,/,&a,&b);
al=l;a2=l;
for(i=l;i<=b-a;i++)
{t=a2;
a2=al+t;
al=t;
)
printf(〃%.01fz,,al);
)
結(jié)果:
輸入:14
輸出:3
程序?qū)嵗?:
ttinclude“stdio.h〃
ttinclude"math.h〃
intmain()
{
inta,b,i,t;
doublen=0,x=l,y=l;
scanf(,z%d%d,z,&a,&b);
t=b+l-a;
for(i=l;i<=t;i++)
x*=(1+sqrt(5))/2,y*=(l-sqrt(5))/2;
printf("%.01f\n,z,(x-y)/sqrt(5));
return0;
)
結(jié)果:
輸入:250
輸出:7778742049
22數(shù)制轉(zhuǎn)換(選作)
我們通常使用的都是十進(jìn)制的數(shù)字,但其實(shí)在生活中也經(jīng)常會(huì)使用其它進(jìn)制。
這個(gè)題目會(huì)給你兩個(gè)不同的數(shù)字,它們不屬于同進(jìn)制,要求你計(jì)算出當(dāng)它們分別處于何種
進(jìn)制之中時(shí),兩個(gè)數(shù)字相等。譬如12和5,在十進(jìn)制下它們是不等的,但若1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯課程設(shè)計(jì)范文
- 舞蹈機(jī)構(gòu)結(jié)業(yè)課程設(shè)計(jì)
- 統(tǒng)編版七年級(jí)語文上冊《5 秋天的懷念》-教學(xué)設(shè)計(jì)
- 游戲行業(yè)銷售人員工作總結(jié)
- 自閉癥科護(hù)士工作總結(jié)
- 2024年研學(xué)旅行指導(dǎo)師考試題庫(含答案)
- 2023-2024學(xué)年遼寧省大連二十四中高一(下)期中語文試卷
- 美發(fā)沙龍營業(yè)員技巧總結(jié)
- 2024年認(rèn)識(shí)星期教案
- 農(nóng)村安裝雨棚材料合同(2篇)
- GB/T 13894-2023石油和液體石油產(chǎn)品液位測量手工法
- 胰島素抵抗與神經(jīng)系統(tǒng)疾病的關(guān)系
- CBL胸腔穿刺教學(xué)設(shè)計(jì)
- Z矩陣、Y矩陣、A矩陣、S矩陣、T矩陣定義、推導(dǎo)及轉(zhuǎn)換公式
- 軟件工程填空題(18套試題與答案)
- 中美歐規(guī)范樁基承載力計(jì)算設(shè)計(jì)對(duì)比
- 動(dòng)機(jī)式訪談法:改變從激發(fā)內(nèi)心開始
- 瞬時(shí)單位線法計(jì)算洪水
- 2023-2024學(xué)年阿勒泰地區(qū)三年級(jí)數(shù)學(xué)第一學(xué)期期末統(tǒng)考試題含答案
- 經(jīng)典紅歌歌譜100首-
- 單位紅頭文件模板(各類通知、任命通知公函紅頭文件)
評(píng)論
0/150
提交評(píng)論