【ACM】航电oj 2000-2025 航电oj 2000-2025 正在更新…
2000
#include <stdio.h>
int main(int argc, char *argv[])
{
char a,b,c;
while(~scanf(" %c%c%c",&a,&b,&c))
{
if(a>b&&b>c) printf("%c %c %c
",c,b,a);
else if(a>c&&c>b||a==c&&c>b) printf("%c %c %c
",b,c,a);
else if(b>c&&c>a||b==c&&c>a) printf("%c %c %c
",a,c,b);
else if(b>a&&a>c||b==a&&a>c) printf("%c %c %c
",c,a,b);
else if(c>a&&a>b||c==a&&a>b) printf("%c %c %c
",b,a,c);
else if(c>b&&b>a||c==b&&b>a) printf("%c %c %c
",a,b,c);
else if(c==b&&c==a) printf("%c %c %c",a,b,c);
}
return 0;
}
~scanf(" %c%c%c",&a,&b,&c) 记住要加空格,作用是读出换行符。getchar()也能实现,只需在每个循环的最后加上就行。
2001
#include <stdio.h>
#include <math.h>
int main(){
double x1,x2,y1,y2;
while(~scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2))
{
printf("%.2f
",sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)));
}
return 0;
}
~scanf() 只有 返回值为EOF 的时候 ~EOF 才能为0 其余 都不会。或者用scanf()!=EOF。
2002
#include <stdio.h>
#define PI 3.1415927
int main(int argc, char *argv[])
{
double r;
while(~scanf(" %lf",&r))
{
printf("%.3f
",4*PI*r*r*r/3);
}
return 0;
}
要先 × 再 /,不然答案会错。不能直接4/3
2003
#include <stdio.h>
int main(int argc, char *argv[])
{
double num;
while(~scanf(" %lf",&num)){
if(num<0) num=num-2*num;
printf("%.2lf
",num);
}
return 0;
}
2004
#include <stdio.h>
int main(int argc, char *argv[])
{
int t;
while(~scanf(" %d",&t))
{
if(t>=90&&t<=100c) printf("A
");
else if(t>=80&&t<=89) printf("B
");
else if(t>=70&&t<=79) printf("C
");
else if(t>=60&&t<=69) printf("D
");
else if(t>=0&&t<=59) printf("E
");
else printf("Score is error!
");
}
return 0;
}
2005
#include <stdio.h>
int main(int argc, char *argv[])
{
int YYYY,MM,DD;
while(~scanf(" %d/%d/%d",&YYYY,&MM,&DD))
{
int sum;
int arr[12][2]={
{1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}
};
if(YYYY%4==0) arr[1][1]=29;
for(int i=0;i<MM-1;i++)
{
sum=sum+arr[MM][1];
}
sum=sum+DD;
printf("%d
",sum);
}
return 0;
}
2006
#include <stdio.h>
int main(int argc, char *argv[])
{
int n,a;
while(~scanf("%d",&n))
{
int sum=1;
for(int i=0;i<n;i++)
{
scanf("%d",&a);
if(a%2!=0||a%2==1) sum=sum*a;
}
printf("%d
",sum);
getchar();
}
return 0;
}
奇数:余2不为0或余2为1
2007
#include <stdio.h>
int main(int argc, char *argv[])
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
int temp;
//记住一定要考虑符号交换顺序
if(n>m){
temp=n;
n=m;
m=temp;
}
int sum1=0,sum2=0;
for(int i=n;i<=m;i++)
{
if(i%2==1) sum1+=i*i*i;
else sum2+=i*i;
}
printf("%d %d
",sum2,sum1);
getchar();
}
return 0;
}
2008
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
while(~scanf("%d",&n))
{
if(n==0) break;
int a=0,b=0,c=0;
double x;
for(int i=0;i<n;i++)
{
scanf("%lf",&x);
if(x<0) a++;
else if(x==0) b++;
else if(x>0) c++;
}
printf("%d %d %d
",a,b,c);
}
return 0;
}
2009
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
double sum=n;
double num=n;
for(int i=0;i<m-1;i++)
{
num=sqrt(num);
sum=sum+num;
}
printf("%.2f
",sum);
}
return 0;
}
2010 有点问题
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n,m;
while(~scanf("%d %d",&n,&m))
{
int temp=0;
int count=0;
int arr[900]={0};
for(int i=n;i<=m;i++)
{
int sum=0;
int i0=i;
for(int j=0;j<3;j++)
{
temp=i0%10;
sum+=pow(temp,3);
i0=i0/10;
}
if(sum==i)
{
arr[count++]=i;
}
}
if(count==0) printf("no");
else {
for(int i=0;i<count-1;i++)
{
printf("%d ",arr[i]);
}
printf("%d
",arr[count-1]);
}
getchar();
}
return 0;
}
2011
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int m;
scanf("%d",&m);
double n;
for(int i=0;i<m;i++)//输入几个实例
{
double sum=0;
scanf("%lf",&n);
for(int j=1;j<=n;j++)
{
sum=sum+(1.0/j)*pow(-1,j+1);
}
printf("%.2f
",sum);
}
return 0;
}
2012
#include <stdio.h>
#include <math.h>
int Sushu(int a)
{
int b=0;
for(int i=2;i<a/2;i++)
{
if(a%i==0)
b++;
}
if(b==0)
return 1;
else
return 0;
}
int main(int argc, char *argv[])
{
int n;
int x,y;
while(~scanf("%d %d",&x,&y)){
if(x==0&&y==0)
{
continue;
}
else{
int temp=x;
if(x>y){
x=y;
y=temp;
}
int count=0;
for(int i=x;i<=y;i++)
{
if(Sushu(i*i+i+41))
{
count++;
}
}
if(count==(y-x+1)) printf("OK
");
else printf("Sorry
");
}
getchar();
}
return 0;
}
2013
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n;
while(~scanf("%d",&n))
{
int sum=1;
for(int i=0;i<n-1;i++)
{
sum=(sum+1)*2;
}
printf("%d
",sum);
}
return 0;
}
2014
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n;
while(~scanf(" %d",&n))
{
getchar();
double sum=0;
int max=0,min=0,grade=0;
scanf("%d",&grade);
sum+=grade;
max=grade;
min=grade;
for(int i=0;i<n-1;i++)
{
int temp;
scanf("%d",&grade);
sum+=grade;
if(max<grade) max=grade;
if(min>grade) min=grade;
}
sum=sum-max-min;
printf("%.2f
",sum/(n-2));
}
return 0;
}
2015
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n,m;
while(~scanf(" %d %d",&n,&m))
{
int num=0,sum=0,count=0;
for(int i=1;i<=n;i++)
{
num+=2;
sum=sum+num;
count++;
if(i%m==0||i==n)
{
printf("%d",sum/count);
sum=0;
count=0;
if(i!=n) printf(" ");
}
}
printf("
");
}
return 0;
}
2016
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n,m;
while(~scanf(" %d",&n))
{
if(n==0) continue;
int a[100];
int min,num,target;
scanf("%d",&num);
min=num;
a[0]=num;
target=0;
for(int i=1;i<n;i++)
{
scanf("%d",&num);
if(num<min)
{
min=num;
target=i;
}
a[i]=num;
}
a[target]=a[0];
a[0]=min;
for(int i=0;i<n;i++)
{
if(i!=n-1) printf("%d ",a[i]);
else printf("%d",a[i]);
}
printf("
");
}
return 0;
}
2017
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int n,m;
scanf(" %d",&n);
for(int i=0;i<n;i++)
{
char s[100]={' '};
int count=0;
scanf(" %s",&s);
for(int j=0;s[j]!=' ';j++)
{
if(s[j]>=48&&s[j]<=57) count++;
}
printf("%d
",count);
}
return 0;
}
2023
#include<stdio.h>
int main()
{
int n,m,i,j,count,s;
double a[51][51],sum1[51],sum2[51];
while(scanf("%d%d",&n,&m)!=EOF)
{
for(j=1;j<=m;j++)
{
sum2[j]=0;
}
for(i=1;i<=n;i++)
{
sum1[i]=0;
for(j=1;j<=m;j++)
{
scanf("%lf",&a[i][j]);
sum1[i]+=a[i][j];
sum2[j]+=a[i][j];
}
}
for(i=1;i<=n;i++)
{
if(i!=n)
printf("%.2lf ",sum1[i]/(double)m);
else
printf("%.2lf",sum1[i]/(double)m);
}
printf("
");
for(i=1;i<=m;i++)
{
if(i!=m)
printf("%.2lf ",sum2[i]/(double)n);
else
printf("%.2lf",sum2[i]/(double)n);
}
printf("
");
count=0;
for(i=1;i<=n;i++)
{
s=0;
for(j=1;j<=m;j++)
{
if(a[i][j]>=sum2[j]/(double)n)
s++;
}
if(s==m)
count++;
}
printf("%d
",count);
}
}