p=a[i];
}
s=abs(abs(a[0]-p)-abs(a[0]-m));
t=a[0];
for(i=1;ir=abs(abs(a[i]-p)-abs(a[i]-m));
if(s>r){
s=r;
t=a[i];
}
}
printf("%d",t);
return0;
}
二、按位转换整数到英文单词
题目描述
请把输入整数的每位数字转换成英文。
如当输入1024时,输出:
one,zero,two,four
输入
输入为一个整数
输出
按整数每一位输出其英文单词,单词间用逗号加空格分隔,单词由小写字母组成。
样例输入
20345
样例输出
two,zero,three,four,five
提示
注意:
大家要考虑数据为"0"的情况,此时如果取对0取对数会出错
例:
(一)
#include
#defineN200
intmain(){
intn,k,j,s;
inta[N];
scanf("%d",&n);
j=0;
s=0;
while(n!
=0){
k=n%10;
n=n/10;
a[j]=k;
j++;
s=s+j;
}
for(j=s-1;j>0;j--){
switch(a[j]){
case0:
printf("zero,");break;
case1:
printf("one,");break;
case2:
printf("two,");break;
case3:
printf("three,");break;
case4:
printf("four,");break;
case5:
printf("five,");break;
case6:
printf("six,");break;
case7:
printf("seven,");break;
case8:
printf("eight,");break;
case9:
printf("nine,");break;
}
}
switch(a[0]){
case0:
printf("zero");break;
case1:
printf("one");break;
case2:
printf("two");break;
case3:
printf("three");break;
case4:
printf("four");break;
case5:
printf("five");break;
case6:
printf("six");break;
case7:
printf("seven");break;
case8:
printf("eight");break;
case9:
printf("nine");break;
}
return0;
}
(二)
#include
#defineN500
intmain(){
intm,i,a[N],n;
scanf("%d",&m);
i=0;
if(m==0)
printf("zero");
else
while(m!
=0){
a[i]=m%10;
i++;
m=m/10;
}
n=i-1;
for(i=n;i>=0;i--){
if(i!
=0){
switch(a[i]){
case0:
printf("zero");break;
case1:
printf("one");break;
case2:
printf("two");break;
case3:
printf("three");break;
case4:
printf("four");break;
case5:
printf("five");break;
case6:
printf("six");break;
case7:
printf("seven");break;
case8:
printf("eight");break;
case9:
printf("nine");break;
}
}
else{
switch(a[i]){
case0:
printf("zero");break;
case1:
printf("one");break;
case2:
printf("two");break;
case3:
printf("three");break;
case4:
printf("four");break;
case5:
printf("five");break;
case6:
printf("six");break;
case7:
printf("seven");break;
case8:
printf("eight");break;
case9:
printf("nine");break;
}
}
}
return0;
}
三、将字符串中的小写字母转换成大写字母
题目描述
给定一个字符串,将其中所有的小写字母转换成大写字母
输入
一个字符串
输出
将输入的字符串中所有小写字母转换成大写字母后的字符串
样例输入
helloworld123Ha
样例输出
HELLOWORLD123HA
例:
(一)
#include
#defineN200
intmain(){
inti;
charc,str[N];
gets(str);
i=0;
while(str[i]!
='\0'){
if(str[i]>='a'&&str[i]<='z'){
str[i]=str[i]-32;
}
i++;
}
puts(str);return0;
}
例
(二)
#include
#include
#defineN500
intmain(){
chara[N];
inti,n;
scanf("%s",a);
n=strlen(a);
for(i=0;iif(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
}
a[n]='\0';
printf("%s",a);
return0;
}
四、最长最短单词
输入1行单词(不多于200个单词),空格和逗号都是单词间的间隔,试输出第1个最长的单词和第1个最短单词。
如果所有单词长度相同,那么第一个单词既是最长单词也是最短单词。
输入
一行单词,空格和逗号都是单词间的间隔
输出
两行输出
第1行,第一个最长的单词
第2行,第一个最短的单词
样例输入
IamstudyingProgramminglanguageCinNanjingUniversityofInformationandTechnology
样例输出
Programming
#include
#includecharstr[4000];
charout[200][200];
intlength[200];
intmain(void){
gets(str);
inti,j=0,k=0,n=strlen(str);
for(i=0;iif(str[i]==''||str[i]==','){
out[j][k]='\0';
length[j]=strlen(out[j]);
j++;
k=0;
continue;
}
out[j][k++]=str[i];
}
intmax=0,min=0;
for(i=1;iif(length[max]max=i;
if(length[min]>length[i])
min=i;
}
puts(out[max]);
puts(out[min]);
return0;
}
五、计算绩点
题目描述
学校对本科生的成绩施行平均学分绩点制(GPA)。
将学生的实际考分根据不同的学科的不同学分按一定的公式进行计算。
曾经使用的规定如下:
实际成绩绩点
90-1004.0
85-893.7
82-843.3
78-813.0
75-772.7
72-742.3
68-712.0
64-671.5
60-631.0
60以下0
1.一门课程的学分绩点=该课绩点*该课学分
2.总评绩点=所有学科绩点之和/所有课程学分之和
现要求你编写程序求出某人A的总评绩点(GPA)。
输入
第一行总的课程数n(n<10);
第二行相应课程的学分(两个学分间用空格隔开);
第三行对应课程的实际得分;
此处输入的所有数字均为整数。
输出
输出有一行,总评绩点,精确到小数点后2位小数。
(printf("%.2f",GPA);)
样例输入
5
43423
9188726956
样例输出
2.52
#include
#include
intmain(){
intn,i;
floata[10],c[10],b[10],sum=0,GPA,d;
scanf("%d",&n);
for(i=0;i<=n-1;i++)
scanf("%f",&a[i]);
for(i=0;i<=n-1;i++){
scanf("%f",&b[i]);
if(b[i]>=90)
c[i]=4.0;
elseif(b[i]>=85)
c[i]=3.7;
elseif(b[i]>=82)
c[i]=3.3;
elseif(b[i]>=78)
c[i]=3.0;
elseif(b[i]>=72)
c[i]=2.3;
elseif(b[i]>=68)
c[i]=2.0;
elseif(b[i]>=64)
c[i]=1.5;
elseif(b[i]>=60)
c[i]=1.0;
elseb[i]=0;
}
for(i=0;i<=n-1;i++)
sum+=a[i]*c[i];
for(i=0;i<=n-1;i++)
d+=a[i];
GPA=sum/d;
printf("%.2f",GPA);
return0;
}
六、按要求排序
输入
第一行为一个整数N(1<=N<=1000)
第二行为N个绝对值不超过10000的整数,表示需要排序的序列
输出
输出N行,为N个整数按升序排序后的序列样例输入
6
100201681099
样例输出
681099100201
提示
这N个数需要随机产生
例:
(一)
#include
#defineN1000
intmain(){
inta[N];
intn,i,j,temp;
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
}
for(j=0;jfor(i=0;iif(a[i]>a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
for(i=0;iprintf("%d",a[i]);
printf("\n");
return0;
}
例
(二)
#include
intmain(){
inti,j,m,n,a[1000];
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
}
for(j=0;jfor(i=0;iif(a[i]>a[i+1]){
m=a[i];
a[i]=a[i+1];
a[i+1]=m;
}
}
}
for(i=0;iprintf("%d",a[i]);
}
return0;
}
七、计算多项式的值
题目描述
多项式f(x)=ax3+bx2+cx+d
输入
输入仅一行,分别是x,及参数a、b、c、d的值,每个数都是双精度浮点数。
输出
输出也仅一行,f(x)的值,保留小数点后7位。
样例输入
2.311.2223
样例输出
33.0838692
提示
使用printf("%.7lf",...)实现保留小数点后7位。
#include
intmain(){
doublex,a,b,c,d,y;
scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d);
y=a*x*x*x+b*x*x+c*x+d;
printf("%.7lf",y);
return0;
}
例
(二)
#include
doublef(doublex,doublea,doubleb,doublec,doubled);
intmain(){
doublex,a,b,c,d,e;
scanf("%lf%lf%lf%lf%lf",&x,&a,&b,&c,&d);
if(x==0.0)
printf("inputerror");
else{
e=f(x,a,b,c,d);
printf("%.7lf",e);
}
return0;
}
doublef(doublex,doublea,doubleb,doublec,doubled){
doublee,p=1.0,g;
inti;
for(i=0;i<3;i++){
p=p*x;
}
g=x*x;
e=a*p+b*g+c*x+d;
returne;
}
八、计算两个分数的和
题目描述
输入两个分数,形式如1/2,计算它们的和,以分数形式输出
输入
第一行为第一个分数第二行为第二个分数
输出
两个分数的和
样例输入
1/2
3/4
样例输出
5/4
#include
intmain(){
intx,y,a,b,m,n,temp,r,p,t,z;
scanf("%d/%d",&x,&y);
scanf("%d/%d",&a,&b);
m=x*b+y*a;z=m;
n=y*b;t=n;
if(ntemp=n;
n=m;
m=temp;
}
while(m!
=0){
r=n%m;
n=m;
m=r;p=n;
}
printf("%d/%d",z/p,t/p);
return0;
}
九、登山
五一到了,NUIST-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。
同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。
队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?
输入
Line1:
N(2<=N<=1000)景点数
Line2:
N个整数,每个景点的海拔
输出
最多能浏览的景点数
样例输入
8
186186150200160130197220
样例输出
4
例
#include
intf(inta[1000],intn);
intmain(){
intn,a[1000],i,m;
scanf("%d",&n);
for(i=0;iscanf("%d",&a[i]);
}
m=f(a,n);
printf("%d",m);
return0;
}
intf(inta[1000],intn){
inti,j=1,s,m,b[1000];
for(m=n;m>0;m--){
for(i=1;iif(a[i]>a[i-1]){
j++;
}
for(i=m-1;iif(a[i]j++;
}
}
}
b[n-m]=j;
j=1;
}
s=b[0];
for(i=1;iif(s
s=b[i];
}
}
returns;
}
十、计算平均年龄
例:
(一)
#includeintmain(){
intn,i,sum,age;
doublenum;
scanf("%d",&n);
for(i=0,sum=0;iscanf("%d",&age);
sum+=age;
}
num=(double)sum/n;
printf("%.2f",num);
return0;
}
例
(二)
#include
intmain(){
intn,m,i;
floatb,a=0.0;
scanf("%d",&n);
for(i=0;iscanf("%d",&m);
a=a+m;
}
b=a/n;
printf("%.2f",b);
return0;
}
十一、数圈
以1为中心,用2,3,。
。
。
,n的数字围绕着