1000 : A+B Problem
#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a+b);
}
1001 : 植树问题
#include
int main()
{
int m,n;
scanf("%d %d",&m,&n);
printf("%d %d",m/n,m%n);
}
1002 : 简单多项式求值
#include
int main()
{
int x,y;
scanf("%d",&x);
y=2*x*x+x+8;
printf("%d",y);
}
1003 : 两个整数的四则运算
#include
int main()
{
int num1,num2;
scanf("%d%d",&num1,&num2);
printf("%d %d %d %d %d",num1+num2,num1-num2,num1*num2,num1/num2,num1%num2);
}
1004 : 三位数的数位分离
#include
int main()
{
int num1;
scanf("%d",&num1);
printf("%d %d %d",num1%10,num1/10%10,num1/100);
}
1005 : 整数幂
#include
int main()
{
int m,n,a;
scanf("%d %d %d",&m,&n,&a);
printf("%-9d%-9d%-9d\n",m,m*m,m*m*m);
printf("%-9d%-9d%-9d\n",n,n*n,n*n*n);
printf("%-9d%-9d%-9d\n",a,a*a,a*a*a);
}
1006 : 求等差数列的和
#include
int main()
{
int a,b,c,m,n,s;
scanf("%d %d %d",&a,&b,&c);
m=(a+b)*(b-a+c);
s=2*c;
n=m/s;
printf("%d",n);
}
1007 : 鸡兔同笼
#include
int main()
{
int m,n,j,t;
scanf("%d %d",&m,&n);
t=(n-2*m)/2;
j=m-t;
printf("%d %d",j,t);
}
1008 : 美元和人民币
#include
int main()
{
int m;
scanf("%d",&m);
printf("%.2f",m*6.5573);
}
1009 : 求平均分
#include
int main()
{
int a,b,c;
float sum;
scanf("%d%d%d",&a,&b,&c);
sum=(a+b+c)/3.0;
printf("%.2f",sum);
}
1010 : 求圆的周长和面积
#include
#define PI 3.14159
int main()
{
double c,s,r;
scanf("%lf",&r);
c=2*PI*r;
s=PI*r*r;
printf("%.2lf %.2lf",c,s);
}
1011 : 圆柱体表面积
#include
#define PI 3.14159
int main()
{
double r,h,s;
scanf("%lf%lf",&r,&h);
s=2*PI*r*r+2*PI*r*h;
printf("%.2lf",s);
}
1012 : 求绝对值
#include
int main()
{
double a,b;
scanf("%lf",&a);
b=fabs(a);
printf("%-.2lf",b);
}
1013 : 求两点间距离
#include
int main()
{
double x1,y1,x2,y2,d;
scanf("%lf %lf %lf %lf",&x1,&y1,&x2,&y2);
d=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2lf",d);
}
1014 : 求三角形的面积
#include
#include
int main()
{
double a,b,c,s,p;
scanf("%lf %lf %lf",&b,&a,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("%.2lf",s);
}
1015 : 二次方程的实根
#include
#include
int main()
{
double a,b,c,x1,x2,n,m;
scanf("%lf%lf%lf",&a,&b,&c);
n=b*b-4*a*c;
m=sqrt(n);
x1=(-b+m)/(2*a);
x2=(-b-m)/(2*a);
printf("%7.2f%7.2f",x1,x2);
return 0;
}
1016 : 银行利率
#include
int main()
{
int n;
double capital;
scanf("%d%lf",&n,&capital);
for(int i=1;i<=n;i++)
{
capital=capital*1.0225;
}
printf("%.6lf\n",capital);
return 0;
}
1017 : 表面积和体积
#include
int main()
{
int a,b,c,d,e,s,v;
scanf("%d\n",&a);
scanf("%d\n",&b);
scanf("%d\n",&c);
scanf("%d\n",&d);
scanf("%d",&e);
s=2*a*b+2*a*c+2*b*c+(a+b+c)*8*d-48*e*d;
v=a*b*c-2*d*((c-2*e)*(a-2*e)+(b-2*e)*(c-2*e)+(a-2*e)*(b-2*e));
printf("%d %d",s,v);
}
1018 : 奇数偶数
#include
int main()
{
int a;
scanf("%d",&a);
if(a%2==0)
printf("even");
else
printf("odd");
return 0;
}
1019 : 公园门票
#include
int main()
{
int a;
scanf("%d",&a);
if(a>=30)
printf("%d",a*48);
else
printf("%d",a*50);
return 0;
}
1020 : 两整数排序
#include
int main()
{
int a,b;
scanf("%d%d",&a,&b);
if(a<b)
printf("%d %d",a,b);
else
printf("%d %d",b,a);
return 0;
}
1021 : 三数求大值
#include
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
if(a>c)
printf("%d",a);
else
printf("%d",c);
else
if(b>c)
printf("%d",b);
else
printf("%d",c);
return 0;
}
1022 : 三整数排序
#include
int main()
{
int a,b,c,m;
scanf("%d%d%d",&a,&b,&c);
if(a<b)
{
m=b;
b=a;
a=m;
}
if(a<c)
{
m=c;
c=a;
a=m;
}
if(b<c)
{
m=c;
c=b;
b=m;
}
printf("%d %d %d",a,b,c);
return 0;
}
1023 : 大小写转换
#include
int main()
{
char ch;
scanf("%c",&ch);
if(ch>='a' && ch<='z')
{
ch=ch-32;
printf("%c",ch);
}
else if(ch>='A' && ch<='Z')
{
printf("%c",ch);
}
}
1024 : 计算字母序号
#include
int main()
{
char ch;
scanf("%c",&ch);
if(ch>='a' && ch<='z')
{
ch=ch-96;
printf("%d",ch);
}
else if(ch>='A' && ch<='Z')
{
ch=ch-64;
printf("%d",ch);
}
}
1025 : 最大字符
#include
int main()
{
char a,b,c,max;
scanf("%c %c %c",&a,&b,&c);
max=a;
if(b>max)
max=b;
if(c>max)
max=c;
printf("%c",max);
}
1026 : 字符类型判断
#include
int main()
{
char ch;
ch=getchar();
if(ch>=65 && ch<=90)
printf("upper");
else if(ch>=97 && ch<=122)
printf("lower");
else if(ch>=48 && ch<=57)
printf("digit");
else
printf("other");
}
1027 : 判断水仙花数
#include
int main()
{
int a,b,c,d;
scanf("%d",&a);
b=a/100;
c=a/10%10;
d=a%10;
if(a==b*b*b+c*c*c+d*d*d)
printf("yes");
else
printf("no");
}
1028 : I love 闰年!
#include
int main()
{
int a;
scanf("%d",&a);
if(a%4==0 && a%100!=0 || a%400==0)
printf("Yes");
else
printf("No");
}
1029 : 三角形判定
#include
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
if(a<b+c && b<a+c && c<a+b)
{
if(a>b-c && b>a-c && c>a-b)
{
printf("Yes");
}
}
else
printf("No");
}
1030 : 判断直角三角形
#include
#include
int main()
{
int a,b,c;
float f;
scanf("%d%d%d",&a,&b,&c);
f=sqrt(a*a+b*b);
if(c==f)
{
printf("yes");
}
else
printf("no");
}
1031 : 判断点在第几象限
#include
int main()
{
int x,y;
scanf("%d%d",&x,&y);
if(x>0 &&y>0)
printf("1");
if(x<0 &&y>0)
printf("2");
if(x<0 &&y<0)
printf("3");
if(x>0 &&y<0)
printf("4");
}
1032 : 员工薪水
#include
int main()
{
int x;
double a,b,c;
scanf("%d",&x);
if(x<=10000)
{
a=x*0.05;
printf("%.2lf",1500+a);
}
if(x>10000 && x<=50000)
{
b=(x-10000)*0.03;
printf("%.2lf",2000+b);
}
if(x>50000)
{
c=(x-50000)*0.02;
printf("%.2lf",3200+c);
}
}
1033 : 五级制成绩
#include
#include
int main()
{
int a,sum;
scanf("%d",&a);
sum=a/10;
switch(sum)
{
case 10:
case 9:printf("A");
break;
case 8:printf("B");
break;
case 7:printf("C");
break;
case 6:printf("D");
break;
default:printf("E");
break;
}
}
1034 : 夏季促销
#include
int main()
{
double a;
scanf("%lf",&a);
if(a<500)
{
printf("%.2lf",a);
}
if(a>=500 && a<1000)
{
a=a*0.95;
printf("%.2lf",a);
}
if(a>=1000 && a<3000)
{
a=a*0.9;
printf("%.2lf",a);
}
if(a>=3000 && a<5000)
{
a=a*0.85;
printf("%.2lf",a);
}
if(a>=5000)
{
a=a*0.8;
printf("%.2lf",a);
}
}
1035 : 分段函数求值
#include
#include
int main()
{
int x,y;
scanf("%d",&x);
if(x<-2)
{
y=7-2*x;
printf("%d",y);
}
if(x>=-2 && x<3)
{
y=5-abs(3*x+2);
printf("%d",y);
}
if(x>=3)
{
y=3*x+4;
printf("%d",y);
}
}
1036 : 某年某月有多少天
#include
#include
int main()
{
int x,y;
scanf("%d %d",&x,&y);
if(x%4==0 && x%100!=0 || x%400==0)
{
switch(y)
{
case 1:printf("31");break;
case 3:printf("31");break;
case 5:printf("31");break;
case 7:printf("31");break;
case 8:printf("31");break;
case 10:printf("31");break;
case 12:printf("31");break;
case 2:printf("29");break;
case 4:printf("30");break;
case 6:printf("30");break;
case 9:printf("30");break;
case 11:printf("30");break;
}
}
else
{
switch(y)
{
case 1:printf("31");break;
case 3:printf("31");break;
case 5:printf("31");break;
case 7:printf("31");break;
case 8:printf("31");break;
case 10:printf("31");break;
case 12:printf("31");break;
case 2:printf("28");break;
case 4:printf("30");break;
case 6:printf("30");break;
case 9:printf("30");break;
case 11:printf("30");break;
}
}
}
1037 : 四则运算
#include
#include
int main()
{
double s1,s2;
char op;
scanf("%lf %c %lf",&s1,&op,&s2);
if(op=='+')
{
printf("%.2lf",s1+s2);
}
else if(op=='-')
{
printf("%.2lf",s1-s2);
}
else if(op=='*')
{
printf("%.2lf",s1*s2);
}
else if(op=='/'&&fabs(s2)>1e-6)
{
printf("%.2lf",s1/s2);
}
else
{
printf("Wrong input!");
}
}
1038 : 绝对值最大
#include
#include
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(abs(a)>=abs(b))
if(abs(a)>=abs(c))
printf("%d",a);
else
printf("%d",c);
else if(abs(b)>=abs(a))
if(abs(b)>=abs(c))
printf("%d",b);
else
printf("%d",c);
}
1039 : n个数求和
#include
int main()
{
int n,i,a,sum=0;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a);
sum=sum+a;
}
printf("%d",sum);
}
1040 : 数列求和1
#include
int main()
{
int n,i;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+1.0/(2*i-1);
}
printf("%.2lf",sum);
return 0;
}
1041 : 数列求和2
#include
int main()
{
int n,i,m=1;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+m*1.0/(2*i-1);
m=-m;
}
printf("%.2lf",sum);
return 0;
}
1042 : 数列求和3
#include
int main()
{
int n,i,m=1;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+m*1.0*(i)/(2*i-1);
m=-m;
}
printf("%.3lf",sum);
return 0;
}
1043 : 最大值
#include
#include
int main()
{
int n,i=1,m,a,max;
scanf("%d\n",&n);
scanf("%d",&a);
max=a;
while(i<=n-1)
{
scanf("%d",&m);
if(m>max)
max=m;
i++;
}
printf("%d",max);
}
1044 : 不及格率
#include
int main()
{
int n,i=1;
double b,get,sum=0.0;
scanf("%d\n",&n);
while(i<=n)
{
scanf("%lf",&b);
if(b<60)
{
sum=sum+1;
}
i++;
}
get=sum/n;
printf("%.2lf",get);
}
1045 : 数值统计
#include
int main()
{
int n=0,i,q,fzero=0,zero=0,zzero=0;
scanf("%d\n",&q);
for(i=1;i<=q;i++)
{
scanf("%d",&n);
if(n<0)
{
fzero+=1;
}
else if(n==0)
{
zero+=1;
}
else if(n>0)
{
zzero+=1;
}
}
printf("%d %d %d",fzero,zero,zzero);
return 0;
}
1046 : 奇数的乘积
#include
int main()
{
int n=0,i,q,sum=1;
scanf("%d\n",&q);
for(i=1;i<=q;i++)
{
scanf("%d",&n);
if(n%2!=0)
{
sum*=n;
}
}
printf("%d",sum);
return 0;
}
1047 : 对数表
#include
#include
int main()
{
int m,n;
double sum;
scanf("%d %d",&m,&n);
for(;m<=n;m++)
{
sum=log(m);
printf("%4d%8.4lf\n",m,sum);
}
return 0;
}
1048 : 阶乘表
#include
#include
int main()
{
int n,i;
double m=1.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
m=m*i;
printf("%-4d%-20.0lf\n",i,m);
}
return 0;
}
1049 : 平方和与立方和
#include
#include
int main()
{
int m,n,x=0,y=0;
scanf("%d%d",&m,&n);
for(m;m<=n;m++)
{
if(m%2==0)
{
x=x+m*m;
}
else
{
y=y+m*m*m;
}
}
printf("%d %d",x,y);
return 0;
}
1050 : 阶乘的累加和
#include
int main()
{
int i,n,jie=1,sum=0,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
jie=1;
for(j=1;j<=i;j++)
{
jie=j*jie;
}
sum=jie+sum;
}
printf("%d",sum);
}
1051 : 求数列的和
#include
#include
int main()
{
double sum=0.0,item,n,i;
scanf("%lf%lf",&item,&n);
for(i=1;i<=n;i++)
{
sum=sum+item;
item=sqrt(item);
}
printf("%.2lf",sum);
}
1052 : 前n项和
#include
#include
int main()
{
int n,a,s=0,sum=0,q=1,i;
scanf("%d%d",&n,&a);
for(i=1;i<n;i++)
{
s=s+q*10*a;
sum=sum+s;
q=q*10;
}
printf("%d\n",sum+a*n);
}
1053 : 正弦函数
#include
#include
int main()
{
int i,j;
double x,s=0.0,h=1.0,ret=1.0;
scanf("%lf",&x);
for(i=1;i<=19;i=i+2)
{
ret=1;
for(j=1;j<=i;j++)
{
ret=ret*j;
}
s=s+h*pow(x,i)/ret;
h=-h;
}
printf("%.3lf",s);
}
1054 : 猴子吃桃
#include
int main()
{
int n,x=1,sum=0,i;
scanf("%d",&n);
for(i=1;i<n;i++)
{
x=(x+1)*2;
}
printf("%d",x);
}
1055 : 兔子繁殖问题
#include
int main()
{
int i,n;
int nowt=1,beforet=1,t;
scanf("%d",&n);
for(i=3;i<=n;i++)
{
t=nowt;
nowt=nowt+beforet;
beforet=t;
}
printf("%d",nowt);
}
1056 : 整存零取
#include
int main()
{
int i;
double x,y=0.0;
scanf("%lf",&x);
for(i=0;i<5;i++)
{
y=(y+1000)/(1+12*x);
}
printf("%.2lf",y);
}
1057 : 素数判定
#include
int main()
{
int n,i;
scanf("%d",&n);
if(n==1)
{
printf("No");
}
for(i=2;i<n;i++)
{
if(n%i==0)
{
printf("No");
break;
}
}
if(i==n)
{
printf("Yes");
}
}
1058 : 求解不等式
#include
int main()
{
int n,i;
double ret=1.0,sum=0;
scanf("%d",&n);
for(i=1;;i++)
{
ret=ret*i;
sum=sum+ret;
if(sum>=n)
{
printf("m<=%d",i-1);
break;
}
}
}
1059 : 最高分
#include
int main()
{
int n,i,max;
scanf("%d",&i);
max=i;
while(~scanf("%d",&n)&&n>0)
{
if(max<n)
{
max=n;
}
}
printf("%d",max);
}
1060 : 逆序输出各位数字
#include
int main()
{
int n;
scanf("%d",&n);
while(n>0)
{
printf("%d ",n%10);
n/=10;
}
}
1061 : 顺序输出各位数字
#include
int main()
{
int n,ret=1,m;
scanf("%d",&n);
m=n;
n/=10;
while(n>0)
{
ret=ret*10;
n=n/10;
}
while(ret>0)
{
printf("%d ",m/ret);
m=m%ret;
ret/=10;
}
}
1062 : 最大公约数
#include
int main()
{
int m,n,r;
scanf("%d %d",&m,&n);
while(m%n)
{
r=m%n;
m=n;
n=r;
}
printf("%d",n);
}
1063 : 最大公约与最小公倍
#include
int main()
{
int m,n,r,x,y;
scanf("%d %d",&m,&n);
y=n;
x=m;
while(m%n)
{
r=m%n;
m=n;
n=r;
}
printf("%d %d",n,y/n*x);
}
1064 : 加密字符
#include
int main()
{
char x;
while(scanf("%c",&x),x!='@')
{
if(x>='A'&&x<='Z')
{
x+=32;
if(x>='a'&&x<='y')
{
x+=1;
}
if(x=='z')
{
x='a';
}
}
else if(x>='a'&&x<='y')
{
x+=1;
}
else if(x=='z')
{
x='a';
}
else
x=x;
printf("%c",x);
}
}
1065 : 统计数字字符的个数
#include
int main()
{
char x;
int count=0;
while(scanf("%c",&x),x!='\n')
{
if(x>='0'&&x<='9')
{
count++;
}
}
printf("%d",count);
}
1066 : 字符分类统计
#include
int main()
{
char x;
int count1=0,count2=0,count3=0;
while(scanf("%c",&x),x!='\n')
{
if((x>='a'&&x<='z')||(x>='A'&&x<='Z'))
{
count1++;
}
else if(x>='0'&&x<='9')
{
count2++;
}
else
{
count3++;
}
}
printf("letter:%d\ndigit:%d\nother:%d\n",count1,count2,count3);
}
1067 : 有问题的里程表
#include
int main()
{
int sum=0,count=0,i;
scanf("%d",&sum);
for(i=1;i<=sum;i++)
{
if(i%10==4)
count++;
else if((i/10)%10==4)
count++;
else if((i/100)%10==4)
count++;
}
printf("%d",sum-count);
}
1068 : 进制转换
#include
#include
int main()
{
int a=0;
char ch;
while(ch=getchar(),ch!='\n')
{
a=a*2+(ch-'0');
}
printf("%d\n",a);
}
1069 : 向Z同学学习
#include
int main()
{
int M,k,sum=0;
scanf("%d%d",&M,&k);
while(M>=1)
{
M-=1;
sum+=1;
if(sum%k==0)
{
M+=1;
}
}
printf("%d",sum);
}
1070 : 小汽车的位置
#include
int main()
{
int time,command,x=0,y=0;
int flag=0,kai=0;
while(scanf("%d %d",&time,&command))
{
if(flag==0)
{
y=y+(time-kai)*10;
}
else if(flag==1)
{
x=x-(time-kai)*10;
}
else if(flag==2)
{
y=y-(time-kai)*10;
}
else if(flag==3)
{
x=x+(time-kai)*10;
}
if(command==1)
{
flag=(flag+1)%4;
}
else if(command==2)
{
flag=(flag-1+4)%4;
}
else if(command==3)
{
break;
}
kai=time;
}
printf("%d %d",x,y);
return 0;
}
1071 : 分解质因子
#include
int main()
{
int n,i;
scanf("%d",&n);
for(i=2;n>1;i++)
{
while(n%i==0)
{
printf("%d",i);
n=n/i;
if(n==1)
break;
else
printf(" ");
}
}
}
1072 : 青蛙爬井
#include
int main()
{
int high,up,down;
scanf("%d %d %d",&high,&up,&down);
printf("%d",(high-down)/(up-down));
}
1073 : 画个圈圈诅咒你
#include
int main()
{
int num,sum=0;
scanf("%d",&num);
while(num>0)
{
if(num%10==0||num%10==9||num%10==6)
{
sum++;
}
else if(num%10==8)
{
sum+=2;
}
num=num/10;
}
printf("%d",sum);
}
1074 : 百钱买百鸡
#include
int main()
{
int num,i,j,flag=0;
int z=0;
scanf("%d",&num);
for(i=0;i<=num;i++)
{
for(j=0;j<=num;j++)
{
z=3*num-15*i-9*j;
if(z>=0&&z<=num&&i+j+z==num&&z%3==0)
{
printf("%4d%4d%4d\n",i,j,z);
flag=1;
}
}
}
if(flag==0)
printf("No Answer");
}
1075 : 聚餐人数统计
#include
int main()
{
int m,n,i,flag=0;
scanf("%d%d",&m,&n);
for(i=0;i<=n/3;i++)
{
int k=0,j;
for(j=0;j<=n/2;j++)
{
k=m-i-j;
if(k+i+j==m&&3*i+2*j+k==n&&k<=n&&k>=0)
{
flag=1;
printf("%d %d %d\n",i,j,k);
}
}
}
if(flag==0)
printf("No answer");
}
1076 : 三位数求解
#include
int main()
{
int n,x,y,z,flag=0;
scanf("%d",&n);
for(x=1;x<=9;x++)
{
for(y=1;y<=9;y++)
{
for(z=0;z<=9;z++)
{
if(x*100+y*110+z*12==n)
{
flag=1;
printf("%4d%4d%4d\n",x,y,z);
}
}
}
}
if(flag==0)
printf("No Answer\n");
}
1077 : 字符串加密
#include
int main()
{
int k,i,j;
char m;
scanf("%d\n",&k);
char s[81];
gets(s);
for(j=0;s[j]!='\0';j++)
{
if(s[j]>='a'&&s[j]<='z')
{
s[j]=(s[j]-'a'+k)%26+'a';
}
if(s[j]>='A'&&s[j]<='Z')
{
s[j]=(s[j]-'A'+k)%26+'A';
}
}
puts(s);
}
1078 : a+b(多实例测试1)
#include
int main()
{
int n;
int s[100]={0};
scanf("%d",&n);
int i,j,a,b;
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
s[i]=a+b;
}
for(j=0;j<n;j++)
{
printf("%d\n",s[j]);
}
}
1079 : a+b(多实例测试2)
#include
int main()
{
int n;
int s[1000]={0};
int i,a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
i=0;
s[i]=a+b;
printf("%d\n",s[i]);
i++;
}
}
1080 : a+b(多实例测试3)
#include
int main()
{
int n;
int s[1000]={0};
int i,a,b;
while(scanf("%d%d",&a,&b)!=EOF)
{
i=0;
if(a==0&&b==0)
{
break;
}
s[i]=a+b;
printf("%d\n",s[i]);
i++;
}
}
1081 : n个数求和 (多实例测试)
#include
int main()
{
int m,t;
int i,a;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&m);
int j;
int sum=0;
for(j=0;j<m;j++)
{
scanf("%d",&a);
sum+=a;
}
printf("%d\n",sum);
}
}
1082 : 敲7(多实例测试)
#include
int main()
{
int m,t;
int i;
scanf("%d",&t);
for(i=0;i<t;i++)
{
scanf("%d",&m);
int j=0;
for(j=1;j<=m;j++)
{
if(j%7==0||j%10==7||j/10%10==7||j/100%10==7||j/1000%10==7)
{
printf("%d ",j);
}
}
printf("\n");
}
}
1083 : 数值统计(多实例测试)
#include
int main()
{
double m;
int i,n;
while(scanf("%d",&n),n!=0)
{
int j;
int a=0,b=0,c=0;
for(j=0;j<n;j++)
{
scanf("%lf",&m);
if(m>0)
{
a++;
}
else if(m<0)
{
b++;
}
else
{
c++;
}
}
printf("%d %d %d\n",b,c,a);
}
}
1084 : 计算两点间的距离(多实例测试)
#include
#include
int main()
{
double x1,x2,y1,y2;
double c;
while(scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2)!=EOF)
{
c=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2lf\n",c);
}
}
1085 : 求奇数的乘积(多实例测试)
#include
#include
int main()
{
int n,i,a;
while(scanf("%d",&n)!=EOF)
{
int count=1;
for(i=0;i<n;i++)
{
scanf("%d",&a);
if(a%2!=0)
{
count*=a;
}
}
printf("%d\n",count);
}
}
1086 : ASCII码排序(多实例测试)
#include
int main()
{
char a,b,c,t;
while(scanf("%c%c%c",&a,&b,&c)!=EOF)
{
getchar();
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=c;
c=b;
b=t;
}
printf("%c %c %c\n",a,b,c);
}
}
1087 : 获取出生日期(多实例测试)
#include
int main()
{
int y,m,d,n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%*6d%4d%2d%2d%*4d",&y,&m,&d);
printf("%4d-%02d-%02d\n",y,m,d);
}
}
1088 : 手机短号 (多实例)
#include
int main()
{
int y,m,d,n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%*6d%5d",&m);
printf("%d",6);
printf("%05d\n",m);
}
}
1089 : 阶乘的最高位
#include
int main()
{
int n,i;
scanf("%d",&n);
double ret=1.0;
for(i=1;i<=n;i++)
{
ret=ret*i;
while(ret>=100)
{
ret=ret/10;
}
}
if(ret<10)
{
printf("%.0f\n",ret);
}
else
{
printf("%d\n",(int)ret/10);
}
return 0;
}
1090 : 整数幂(多实例测试)
#include
int main()
{
int n,i,a,b,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d%d",&a,&b);
int ret=1;
for(j=1;j<=b;j++)
{
ret=ret*a;
ret=ret%1000;
}
printf("%d\n",ret);
}
return 0;
}
1091 : 童年生活二三事(多实例测试)
#include
#include
int main()
{
int n,a3;
while(scanf("%d",&n)!=EOF&&n!=0)
{
if(n==1)
{
printf("1\n");
}
else if(n==2)
{
printf("2\n");
}
else
{
int i,a1=1,a2=2;
for(i=3;i<=n;i++)
{
a3=a1+a2;
a1=a2;
a2=a3;
}
printf("%d\n",a3);
}
}
}
1092 : 素数表(函数专题)
#include
#include
int prime(int n);
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int c=0,j,flag=0;
for(j=m;j<=n;j++)
{
c=prime(j);
if(c==1)
{
flag=1;
printf("%d ",j);
}
}
if(flag==0)
printf("No Answer");
}
int prime(int n)
{
int i,j;
if(n==1)
return 0;
for(i=2;i<=sqrt(n);i++)
{
if(n%i==0)
{
return 0;
}
}
return 1;
}
1093 : 验证哥德巴赫猜想(函数专题)
#include
#include
int prime(int n);
int main()
{
int n,i;
scanf("%d",&n);
int c;
for(i=3;i<=n/2;i+=2)
{
c=(prime(i)&&prime(n-i));
if(c==1)
printf("%d %d\n",i,n-i);
}
}
int prime(int n)
{
int j;
if(n==1)
return 0;
for(j=2;j<=(int)sqrt(n);j++)
{
if(n%j==0)
return 0;
}
return 1;
}
1094 : 统计元音(函数专题)
#include
#include
int vowel(char ch);
int main()
{
char ch,h;
int sum=0;
while(scanf("%c",&ch)!=EOF&&ch!='\n')
{
h=vowel(ch);
if(h==1)
sum++;
}
printf("%d\n",sum);
}
int vowel(char ch)
{
if(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u'||ch=='A'||ch=='E'||ch=='I'||ch=='O'||ch=='U')
return 1;
else
return 0;
}
1095 : 时间间隔(多实例测试)
#include
#include
#include
int HmsToS(int h, int m, int s);
void PrintTime(int s);
int main()
{
int h, m, s, second1, second2, temp, flag = 1, sum = 0, i;
while (scanf("%d:%d:%d", &h, &m, &s) != EOF)
{
second1 = HmsToS(h, m, s);
scanf("%d:%d:%d", &h, &m, &s);
second2 = HmsToS(h, m, s);
temp = second1 - second2;
temp = abs(temp);
PrintTime(temp);
}
return 0;
}
int HmsToS(int h, int m, int s)
{
int seconds;
seconds = h * 3600 + m * 60 + s;
return seconds;
}
void PrintTime(int s)
{
int hours, minutes, seconds;
hours = s / 3600;
minutes = (s / 60) % 60;
seconds = s % 60;
printf("%02d:%02d:%02d\n", hours, minutes, seconds);
}
1096 : 水仙花数(多实例测试)
#include
int main()
{
int x,y,i,c;
while(scanf("%d %d",&x,&y)!=EOF)
{
int first=0,flag=0;
for(i=x;i<=y;i++)
{
c=(i/100)*(i/100)*(i/100)+(i/10%10)*(i/10%10)*(i/10%10)+(i%10)*(i%10)*(i%10);
if(i==c&&first==0)
{
printf("%d",i);
flag=1;
first=1;
continue;
}
else if(i==c&&first==1)
{
printf(" %d",i);
continue;
}
}
if(flag==0)
printf("no");
printf("\n");
}
}
1097 : 计算平均成绩(函数专题)
#include
double god(char ch)
{
if(ch=='A')
return 95;
else if(ch=='B')
return 85;
else if(ch=='C')
return 75;
else if(ch=='D')
return 65;
else if(ch=='E')
return 40;
}
int main()
{
char ch;
double i=0,sum=0.0;
while(scanf("%c",&ch)!=EOF&&ch!='\n')
{
sum=sum+god(ch);
i++;
}
printf("%.1lf\n",sum/i);
return 0;
}
1098 : 复合函数求值(函数专题)
#include
#include
double funF(double x)
{
return fabs(x-3)+fabs(x+1);
}
double funG(double x)
{
return x*x-3*x;
}
int main()
{
double x;
double z;
scanf("%lf",&x);
z=funF(funG(x));
printf("%.2lf",z);
}
1099 : 角谷猜想(多实例测试)
#include
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
int i=0;
while(n!=1)
{
if(n%2==0)
{
n=n/2;
}
else
{
n=n*3+1;
}
i++;
}
printf("%d\n",i);
}
}
1100 : 求组合数(函数专题)
#include
int funG(int n)
{
int i,y=1;
for(i=1;i<=n;i++)
{
y=y*i;
}
return y;
}
int main()
{
int m,k,c;
scanf("%d%d",&m,&k);
c=funG(m)/(funG(k)*funG(m-k));
printf("%d\n",c);
}
1101 : 逆序数字(函数专题)
#include
int inverse(int n)
{
int i=0;
while(n>0)
{
i=i*10+n%10;
n/=10;
}
return i;
}
int main()
{
int n,sum=0,z;
scanf("%d",&n);
z=inverse(n);
sum=z+n;
printf("%d",sum);
}
1102 : 火车票退票费计算(函数专题)
#include
double CancelFee(double price);
int main()
{
double n,s;
scanf("%lf",&n);
s=CancelFee(n);
printf("%.1lf",s);
}
double CancelFee(double price)
{
double c;
int z;
z=price*0.05;
c=price*0.05;
if((c-z)<0.25)
return z;
else if((c-z)>=0.25&&(c-z)<0.75)
return z+0.5;
else if((c-z)>=0.75)
return z+1;
}
1103 : 平均学分绩点(函数专题)
#include
double GPA(int score);
int main()
{
int n,xue,score;
scanf("%d",&n);
int jidian=0,s=0;
double w=0.0;
int i;
for(i=0;i<n;i++)
{
scanf("%d %d",&xue,&score);
jidian=GPA(score);
w=w+jidian*xue;
s=s+xue;
}
printf("%.1lf\n",w/s);
}
double GPA(int score)
{
if(score==100)
return 5;
else if(score<100&&score>=90)
return 4;
else if(score<90&&score>=80)
return 3;
else if(score<80&&score>=70)
return 2;
else if(score<70&&score>=60)
return 1;
else if(score<60)
return 0;
}
1104 : 求因子和(函数专题)
#include
int FacSum(int n);
int main()
{
int n,z;
scanf("%d",&n);
z=FacSum(n);
printf("%d",z);
}
int FacSum(int n)
{
int i;
int sum=0;
if(n==2)
return 1;
if(n>2)
{
for(i=1;i<n;i++)
{
if(n%i==0)
{
sum+=i;
}
}
return sum;
}
}
1105 : 判断友好数对(函数专题)
#include
int facsum (int n);
int main()
{
int n,m,z,i,j,flag=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
{
z=facsum(i);
if(i==facsum(z)&&i<z)
{
printf("%d %d\n",i,z);
flag=1;
}
}
if(flag==0)
printf("No answer");
}
int facsum (int n)
{
int i;
int sum=0;
if(n==2)
return 1;
if(n>2)
{
for(i=1;i<n;i++)
{
if(n%i==0)
{
sum+=i;
}
}
return sum;
}
}
1106 : 回文数(函数专题)
#include
int inverse(int n)
{
int i=0;
while(n>0)
{
i=i*10+n%10;
n/=10;
}
return i;
}
int main()
{
int m,n,i,z;
scanf("%d %d",&m,&n);
for(i=m;i<=n;i++)
{
z=inverse(i);
if(z==i)
{
printf("%d ",i);
}
}
}
1107 : 回文数猜想(函数专题)
#include
int inverse(int n)
{
int i=0;
while(n>0)
{
i=i*10+n%10;
n/=10;
}
return i;
}
int main()
{
int m,n,i,z;
scanf("%d",&n);
while(m=inverse(n),m!=n)
{
printf("%d ",n);
n=n+m;
}
printf("%d",m);
}
1108 : 打印数字图形(函数专题)
#include
void PrintLine(int n, int k);
int main()
{
int n,k;
scanf("%d",&n);
k=n;
PrintLine(n,k);
}
void PrintLine(int n, int k)
{
int i,w,s,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
{
printf(" ");
}
for(w=1;w<=i;w++)
{
printf("%d",w);
}
for(s=i-1;s>0;s--)
{
printf("%d",s);
}
printf("\n");
}
int f,y,l;
int o=1;
for(o=1;o<=n-1;o++)
{
for(f=1;f<=o;f++)
{
printf(" ");
}
for(y=1;y<=n-o;y++)
{
printf("%d",y);
}
for(l=n-o-1;l>=1;l--)
{
printf("%d",l);
}
printf("\n");
}
}
1109 : 数根(函数专题)
#include
int digitSum(int n);
int main()
{
int n,sum,s;
scanf("%d",&n);
sum=digitSum(n);
while(sum>=10)
{
sum=digitSum(sum);
}
printf("%d",sum);
}
int digitSum(int n)
{
int x=0,sum=0;
while(n>0)
{
x=n%10;
n/=10;
sum=sum+x;
}
return sum;
}
1110 : 最近共同祖先(函数专题)
#include
int common(int x, int y);
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
z=common(x,y);
printf("%d",z);
}
int common(int x, int y)
{
if(x==y)
{
return x;
}
else if(x>y)
{
x=x/2;
return common(x,y);
}
else
{
y=y/2;
return common(x,y);
}
}
1111 : 多个整数的逆序输出(函数专题)
#include
void nixv(int n);
int main()
{
int n;
scanf("%d",&n);
nixv(n);
}
void nixv(int n)
{
int num;
if(n==1)
{
scanf("%d",&num);
printf("%d ",num);
}
if(n>1)
{
scanf("%d",&num);
nixv(n-1);
printf("%d ",num);
}
}
1112 : 进制转换(函数专题)
#include
void convert(int n);
int main()
{
int n;
scanf("%d",&n);
convert(n);
}
void convert(int n)
{
if(n>1)
{
convert(n/2);
}
printf("%d",n%2);
}
1113 : 递归调用的次数统计(函数专题)
#include
int fib(int k);
int i=0;
int main(void)
{
int n;
scanf("%d", &n);
printf("%d\n", fib(n));
printf("递归调用了%d次",i);
return 0;
}
int fib(int k)
{
i++;
if(k == 1 || k == 2)
{
return 1;
}
else
return fib(k-1) + fib(k-2);
return i;
}
1114 : 逆序
#include
int main()
{
int n,i;
scanf("%d",&n);
int arr[10]={0};
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
int j;
for(j=i-1;j>=0;j--)
{
printf("%4d",arr[j]);
}
}
1115 : 数组最小值
#include
int main()
{
int n,b,i,max;
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int j;
max=a[0];
b=0;
for(j=1;j<n;j++)
{
if(a[j]<max)
{
max=a[j];
b=j;
}
}
printf("%d %d\n",max,b);
}
1116 : 删除元素
#include
void del(int a[], int n, int i);
void PrintArr(int a[], int n);
int main()
{
int n,z;
scanf("%d",&n);
int a[10]={0};
int i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&z);
del(a,n,z);
}
void del(int a[], int n, int i)
{
int s=0;
for(s=0;s<n;s++)
{
if(s>=i)
{
a[s]=a[s+1];
}
}
PrintArr(a,n-1);
}
void PrintArr(int a[], int n)
{
int i;
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
if(i==n-1)
{
printf("%d",a[i]);
}
}
1117 : 查找数组元素
#include
int find(int a[], int n, int x);
void dell(int a[], int n, int x);
void PrintArr(int a[], int n);
int main()
{
int a[10]={0};
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int del,z;
scanf("%d",&del);
z=find(a,n,del);
if(z==-1)
{
printf("Not Found");
}
else
{
dell(a,n,z);
}
}
int find(int a[], int n, int x)
{
int i,flag=0;
for(i=0;i<n;i++)
{
if(a[i]==x)
{
flag=1;
return i;
}
}
if(flag==0)
return -1;
}
void dell(int a[], int n, int z)
{
int j,i;
for(i=z;i<n-1;i++)
{
a[i]=a[i+1];
}
PrintArr(a,n-1);
}
void PrintArr(int a[], int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%4d",a[i]);
}
}
1118 : 数列有序
#include
int insert(int a[], int n, int num);
void PrintArr(int a[], int n);
int main()
{
int a[1000]={0};
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int num;
scanf("%d",&num);
insert(a,n,num);
PrintArr(a,n+1);
}
int insert(int a[], int n, int num)
{
int i;
for(i=n-1;i>=0;i--)
{
if(a[i]>num)
{
a[i+1]=a[i];
}
else
{
a[i+1]=num;
break;
}
}
if(i<0)
{
a[0]=num;
}
return 0;
}
void PrintArr(int a[], int n)
{
int i;
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
if(i==n-1)
{
printf("%d",a[i]);
}
}
1119 : 一维数组排序
#include
void sort(int a[], int n);
void PrintArr(int a[], int n);
int main()
{
int a[1000]={0};
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,n);
}
void sort(int a[], int n)
{
int i,tmp,j;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
PrintArr(a,n);
}
void PrintArr(int a[], int n)
{
int i;
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
if(i==n-1)
{
printf("%d",a[i]);
}
}
1120 : 最值交换
#include
int MinIndex(int a[], int n);
int MaxIndex(int a[], int n);
void PrintArr(int a[], int n);
int main()
{
int a[1000]={0};
int n,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
int max,min,tmp,kmp;
min=MinIndex(a,n);
tmp=a[0];
a[0]=a[min];
a[min]=tmp;
max=MaxIndex(a,n);
kmp=a[n-1];
a[n-1]=a[max];
a[max]=kmp;
PrintArr(a,n);
}
int MinIndex(int a[], int n)
{
int i=0,z=0,min;
min=a[0];
for(i=1;i<n;i++)
{
if(a[i]<min)
{
min=a[i];
z=i;
}
}
return z;
}
int MaxIndex(int a[], int n)
{
int i=0,z=0,max;
max=a[0];
for(i=1;i<n;i++)
{
if(a[i]>max)
{
max=a[i];
z=i;
}
}
return z;
}
void PrintArr(int a[], int n)
{
int i;
for(i=0;i<n-1;i++)
{
printf("%d ",a[i]);
}
if(i==n-1)
{
printf("%d",a[i]);
}
}
1121 : 电梯
#include
int main()
{
int n,i;
scanf("%d",&n);
int a[1000]={0};
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
int sum=0,j;
sum+=5*n;
for(j=1;j<=n;j++)
{
if(a[j]>a[j-1])
{
sum=sum+(a[j]-a[j-1])*6;
}
else{
sum=sum+(a[j-1]-a[j])*4;
}
}
printf("%d\n",sum);
}
1122 : 小明的调查作业
#include
int main()
{
int n,i;
scanf("%d",&n);
int a[1000]={0};
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
int j;
for(j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
int tmp=a[j+1];
a[j+1]=a[j];
a[j]=tmp;
}
}
}
int j;
for(j=0;j<n-1;j++)
{
if(a[j]==a[j+1])
{
int k=0;
for(k=j;k<n-1;k++)
{
a[k]=a[k+1];
}
n--;
j--;
}
}
printf("%d\n",n);
for(i=0;i<n;i++)
{
if(i<n-1)
printf("%d ",a[i]);
else
printf("%d",a[i]);
}
}
1123 : 最佳校友
#include
int main()
{
int a[100]={0};
int n,i,max;
while(scanf("%d",&i)&&i>=0)
{
a[i]++;
}
max=a[0];
for(i=1;i<100;i++)
{
if(max<a[i])
{
max=a[i];
}
}
int f=0;
for(i=0;i<100;i++)
{
if(a[i]==max)
{
if(f)
printf(" %d",i);
else
{
f=1;
printf("%d",i);
}
}
}
}
1124 : 两个有序数组合并
#include
int a[1000000]={0};
int b[1000000]={0};
int main()
{
int n,m;
scanf("%d",&m);
int i=0;
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&b[i]);
}
int c[m+n];
int z=0;
i=m-1;
int j=0;
while(i>=0&&j<n)
{
if(a[i]>b[j])
{
c[z++]=a[i--];
}
else
{
c[z++]=b[j++];
}
}
if(j==n)
{
for(;i>=0;i--)
{
c[z++]=a[i];
}
}
else
{
for(;j<n;j++)
{
c[z++]=b[j];
}
}
for(i=0;i<m+n;i++)
{
if(i<m+n-1)
printf("%d ",c[i]);
else
printf("%d",c[i]);
}
}
1125 : 上三角矩阵的判断
#include
int main()
{
int n;
scanf("%d",&n);
int i,j;
int a[10][10]={0};
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
int flag=0;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(i>j)
{
if(a[i][j]!=0)
{
flag=1;
}
}
}
}
if(flag==0)
printf("YES");
else
printf("NO");
}
1126 : 布尔矩阵
#include
int buer(int a[100][100],int n);
int hang1,lie1;
int main()
{
int n;
scanf("%d",&n);
int i,j;
int a[100][100]={0};
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}
int z=buer(a,n);
if(z==1)
printf("OK");
else if(z==2)
printf("Change bit(%d,%d)",hang1,lie1);
else
printf("Corrupt");
}
int buer(int a[100][100],int n)
{
int i,j,sum1=0,sum2=0;
int hang[100]={0};
int lie[100]={0};
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
hang[i]+=a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
lie[i]+=a[j][i];
}
}
for(i=0;i<n;i++)
{
if(hang[i]%2!=0)
{
sum1++;
hang1=i;
}
}
for(i=0;i<n;i++)
{
if(lie[i]%2!=0)
{
sum2++;
lie1=i;
}
}
if(sum1==0&&sum2==0)
return 1;
else if(sum1==1&&sum2==1)
return 2;
else
return -1;
}
1127 : 矩阵乘积
#include
int main()
{
int m,p,n;
scanf("%d%d%d",&m,&p,&n);
int a[10][10]={0};
int b[10][10]={0};
int c[10][10]={0};
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<p;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<p;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&b[i][j]);
}
}
int k;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
for(k=0;k<p;k++)
{
c[i][j]+=a[i][k]*b[k][j];
}
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(j<n-1)
printf("%d ",c[i][j]);
else
printf("%d",c[i][j]);
}
printf("\n");
}
}
1128 : 课程平均分
#include
int main()
{
int m,n,i,j;
scanf("%d%d",&m,&n);
double a[1000][10]={0};
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%lf",&a[i][j]);
}
}
for(i=0;i<n;i++)
{
double sum=0.0;
for(j=0;j<m;j++)
{
sum=sum+a[j][i];
}
if(i<n-1)
printf("%.2lf ",sum/m);
else
printf("%.2lf",sum/m);
}
}
1129 : 杨辉三角
#include
int main()
{
int n,i,j;
scanf("%d",&n);
int a[30][30]={0};
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
a[i][0]=1;
if(i==j)
a[i][j]=1;
}
}
for(i=2;i<n;i++)
{
for(j=1;j<n;j++)
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
if(j<=i-1)
printf("%d ",a[i][j]);
else
printf("%d",a[i][j]);
}
printf("\n");
}
}
1130 : 第几天
#include
int main()
{
int year,month,day;
int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d-%d-%d",&year,&month,&day);
if(year%4==0&&year%100!=0||year%400==0)
{
int sum=0,i;
for(i=1;i<month;i++)
{
sum+=months[i];
if(i==2)
sum++;
}
sum=sum+day;
printf("%d",sum);
}
else
{
int sum=0,i;
for(i=1;i<month;i++)
{
sum+=months[i];
}
sum=sum+day;
printf("%d",sum);
}
}
1131 : 最常用字符
#include
#include
int main()
{
char ch;
int brr[150]={0};
int i=0;
while(scanf("%c",&ch),ch!='\n')
{
if(ch>='A'&&ch<='Z')
ch+=32;
brr[ch]++;
}
int max=97;
for(i=98;i<=122;i++)
{
if(brr[i]>brr[max])
{
max=i;
}
}
printf("%c",max);
}
1132 : 数字字符统计
#include
#include
#include
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
char arr[1000]={0};
scanf("%s",arr);
int x;
x=strlen(arr);
int count=0,i;
for(i=0;i<x;i++)
{
if(arr[i]>='0'&&arr[i]<='9')
{
count++;
}
}
printf("%d\n",count);
}
}
1133 : 单词个数统计
#include
#include
int main()
{
int count=0;
char arr[1000]={0};
gets(arr);
int n,i;
n=strlen(arr);
for(i=0;i<n;i++)
{
if(arr[i]!=' '&&arr[i+1]==' ')
{
count++;
}
}
if(arr[n-1]!=' ')
{
count++;
}
printf("%d",count);
}
1134 : 字符串转换
#include
#define N 110
int main()
{
char str[N];
gets(str);
int i;
double n=0.0;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='0'&&str[i]<='9')
{
n=n*10+(str[i]-'0');
}
}
printf("%.0lf",n*2);
}
1135 : 算菜价
#include
int main()
{
double count=0.0,price=0.0,sum=0.0;
while(scanf("%*s%lf%lf",&count,&price)!=EOF)
{
sum+=count*price;
}
printf("%.1lf",sum);
}
1136 : 首字母变大写
#include
int main()
{
char arr[100];
gets(arr);
int i;
for(i=0;arr[i]!='\0';i++)
{
if(i==0)
{
if(arr[0]>='a'&&arr[0]<='z')
arr[0]=arr[0]-32;
}
else
{
if((arr[i-1]==' '&&arr[i]>='a'&&arr[i]<='z'))
arr[i]=arr[i]-32;
}
}
puts(arr);
}
1137 : 查找最大元素
#include
int main()
{
char arr[201];
gets(arr);
int i;
char max=arr[0];
for(i=0;arr[i]!='\0';i++)
{
if(arr[i]>max)
{
max=arr[i];
}
}
for(i=0;arr[i]!='\0';i++)
{
if(arr[i]==max)
{
printf("%c(max)",arr[i]);
}
else
{
printf("%c",arr[i]);
}
}
}
1138 : C语言合法标识符
#include
int main()
{
int n;
scanf("%d ",&n);
while(n--)
{
char arr[100];
gets(arr);
int flag=0,i;
for(i=0;arr[i]!='\0';i++)
{
if(arr[0]>='0'&&arr[0]<='9')
{
flag=1;
break;
}
else if(!(arr[i]>='a'&&arr[i]<='z'||arr[i]>='A'&&arr[i]<='Z'||arr[i]=='_'||arr[i]>='0'&&arr[i]<='9'))
{
flag=1;
break;
}
}
if(flag==0)
printf("yes\n");
if(flag==1)
printf("no\n");
}
}
1139 : 输出最短字符串
#include
#include
int main()
{
int n;
scanf("%d ",&n);
char max[1001];
gets(max);
n-=1;
while(n--)
{
char arr[1001];
gets(arr);
if(strlen(arr)<strlen(max))
{
strcpy(max,arr);
}
}
puts(max);
}
1140 : 小数点后第n位 多实例
#include
#include
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
char arr[101];
scanf("%s",arr);
int n;
scanf("%d",&n);
int j,z;
for(j=0;arr[j]!='\0';j++)
{
if(arr[j]=='.')
{
break;
}
}
int flag=0;
for(z=j;arr[z]!='\0';z++)
{
if(z==(n+j))
{
printf("%c\n",arr[z]);
flag=1;
break;
}
}
if(flag==0)
printf("0\n");
}
}
1141 : 进制转换
#include
#include
int main()
{
int n;
scanf("%d",&n);
int arr[40]={0};
int i=0;
if(n==0)
printf("0\n");
while(n)
{
arr[i]=n%2;
n=n/2;
i++;
}
for(i--;i>=0;i--)
{
printf("%d",arr[i]);
}
}
1142 : 二进制数的大小
#include
#include
#include
int bToD(char str[])
{
int i=0,sum=0,n=0;
n=strlen(str)-1;
while(str[i]!='\0')
{
sum=sum+(str[i]-'0')*(int)pow(2,n);
i++;
n--;
}
return sum;
}
int main()
{
int arr[3]={0};
char str[35];
int i,j;
for(i=0;i<3;i++)
{
scanf("%s",str);
arr[i]=bToD(str);
}
int t;
for(i=0;i<2;i++)
{
for(j=i+1;j<3;j++)
{
if(arr[i]>arr[j])
{
t=arr[i];
arr[i]=arr[j];
arr[j]=t;
}
}
}
for(i=0;i<3;i++)
{
if(i<2)
printf("%d ",arr[i]);
else
printf("%d",arr[i]);
}
}
1143 : 最大值—多种进制
#include
#include
#include
int KToD(char str[], int k)
{
int sum = 0;
for (int i = 0; str[i] != '\0'; i++)
{
sum=(sum+(str[i]-'0')) * k;
}
return sum/k;
}
int main()
{
int n;
scanf("%d", &n);
getchar();
int max = 0;
int sum=0;
while (n--)
{
char arr[100];
int k;
scanf("%s %d", arr, &k);
getchar();
sum=KToD(arr, k);
if (sum > max)
{
max = sum;
}
}
printf("%d", max);
}
1144 : 多种进制
#include
#include
#define N 1000
void dToK(int n,int z)
{
int str[N];
int i=0;
while(n>0)
{
str[i]=n%z;
n/=z;
i++;
}
for(int k=i-1;k>=0;k--)
{
printf("%d",str[k]);
}
printf("\n");
}
int main()
{
int n;
scanf("%d",&n);
dToK(n,2);
dToK(n,3);
dToK(n,7);
dToK(n,8);
}
1145 : 有问题的里程表(2)
#include
#include
#define N 1001
int main ()
{
char ch1[N];
scanf("%s",ch1);
int i=0,D=0;
for(i; i < strlen(ch1); i++)
{
if((ch1[i]-48)>4)
{
ch1[i]-=1;
}
D = D*9 + (ch1[i]-48);
}
printf("%d\n",D);
return 0;
}
1148 : 吃糖果
#include
#include
#define N 1000
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int sum=0,x,max=0,i;
for(i=0;i<n;i++)
{
scanf("%d",&x);
sum+=x;
if(x>max)
{
max=x;
}
}
if(max<=sum-max+1)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
}
1149 : 查找子数组
#include
#define N 100
#define M 100
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int i,j,a[N],b[M],flag=0,z=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
{
flag=0;
for(j=0;j<m;j++)
{
if(b[j]==a[i+j])
{
flag+=1;
if(flag==m)
{
z=1;
printf("%d",i+j-m+1);
}
}
}
}
if(z==0)
{
printf("No Answer");
}
}
1150 : 组合三位数之一
#include
int arv(int num1,int num2,int num3)
{
int brr[10]={0};
while(num1)
{
brr[num1%10]=1;
num1/=10;
}
while(num2)
{
brr[num2%10]=1;
num2/=10;
}
while(num3)
{
brr[num3%10]=1;
num3/=10;
}
int i;
for(i=1;i<10;i++)
{
if(brr[i]==0)
return 0;
}
return 1;
}
int main()
{
int arr[30],num=0,i,j,k;
for(i=10;i<33;i++)
{
if(i*i>100&&i*i<1000)
{
arr[num++]=i*i;
}
}
for(i=0;i<num;i++)
{
for(j=i+1;j<num;j++)
{
for(k=j+1;k<num;k++)
{
if(arv(arr[i],arr[j],arr[k])){
printf("%d %d %d",arr[i],arr[j],arr[k]);
}
}
}
}
}
1151 : 组合三位数之二
#include
int arv(int num1,int num2,int num3)
{
int brr[10]={0};
while(num1)
{
brr[num1%10]=1;
num1/=10;
}
while(num2)
{
brr[num2%10]=1;
num2/=10;
}
while(num3)
{
brr[num3%10]=1;
num3/=10;
}
int i;
for(i=1;i<10;i++)
{
if(brr[i]==0)
return 0;
}
return 1;
}
int main()
{
int a,b,c;
for(a=123;a<=333;a++)
{
b=a*2;
c=a*3;
if(arv(a,b,c))
{
printf("%d %d %d\n",a,b,c);
}
}
}
1152 : 数数多少个整数
#include
#include
#include
int main()
{
char arr[1000];
int i,count=0,flag=1;
gets(arr);
for(i=0;i<strlen(arr);i++)
{
if(arr[i]>='0'&&arr[i]<='9'&&flag==1)
{
count++;
flag=0;
}
if(arr[i]>'9'||arr[i]==' ')
{
flag=1;
}if(arr[i]=='0'&&flag==1)
{
count++;
}
}
printf("%d",count);
}
1153 : 大整数加法
#include
#include
#define N 1001
char arr[1001] = {0};
char brr[1001] = { 0 };
int main()
{
int t;
scanf("%d", &t);
while (t--)
{
scanf("%s %s", arr, brr);
char crr[1001] = { 0 };
char drr[1001] = { 0 };
int len1 = strlen(arr);
int j = len1;
for (int i = 0; i < len1; i++)
{
crr[i] = arr[j-1]-'0';
j--;
}
int len2 = strlen(brr);
int z = len2;
for (int i = 0; i < len2; i++)
{
drr[i] = brr[z-1]-'0';
z--;
}
int max = (len1 >= len2) ? len1 : len2;
int flag = 0;
for (int i = 0; i < max; i++)
{
crr[i] += drr[i] + flag;
flag = crr[i] / 10;
crr[i] = crr[i] % 10;
}
if (flag > 0)
{
crr[max] += flag;
max++;
}
int i;
for (i = max-1; i >= 0; i--)
{
printf("%d", crr[i]);
}
printf("\n");
}
}
1154 : 二分搜索
#include
#define N 100000
int main()
{
int n, i;
scanf("%d", &n);
int arr[N];
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int m;
scanf("%d", &m);
while (m--)
{
int x, y, flag = 0;
scanf("%d", &x);
int left = 0;
int right = n - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] > x)
{
right = mid - 1;
}
else if (arr[mid] < x)
{
left = mid + 1;
}
else
{
printf("%d\n", mid);
flag = 1;
break;
}
}
if (flag == 0)
{
printf("Not found!\n");
}
}
}
1155 : 简易版最长序列
#include
#define N 100000
int main()
{
int n, i;
int m;
scanf("%d", &m);
while (m--)
{
scanf("%d", &n);
int arr[N];
for (i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
int tem, j;
for (i = 0; i < n - 1; i++)
{
for (j = 0; j < n - 1 - i; j++)
{
if (arr[j] > arr[j + 1])
{
tem = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tem;
}
}
}
int max = 1, sum = 1;
for (i = 0; i < n - 1; i++)
{
if (arr[i] == arr[i + 1])
{
sum++;
}
else
{
sum = 1;
}
if (sum > max)
{
max = sum;
}
}
printf("%d\n", max);
}
}
1156 : 又是排序(指针专题)
#include
void swap( int *pa, int *pb)
{
int t;
t=*pa; *pa=*pb; *pb=t;
}
int main()
{
int arr[4],i,j;
for(i=0;i<4;i++)
{
scanf("%d",&arr[i]);
}
for(i=0;i<3;i++)
{
for(j=0;j<3-i;j++)
{
if(arr[j]<arr[j+1])
{
swap(&arr[j],&arr[j+1]);
}
}
}
for(i=0;i<4;i++)
{
if(i<3)
printf("%d ",arr[i]);
else
printf("%d\n",arr[i]);
}
}
1157 : 最大值和最小值(指针专题)
#include
#define N 1000
void max_min(int a[],int n,int *maxp,int *minp)
{
int i;
*maxp=a[0];
*minp=a[0];
for(i=1;i<n;i++)
{
if(a[i]>*maxp)
{
*maxp=a[i];
}
if(a[i]<*minp)
{
*minp=a[i];
}
}
}
int main()
{
int n;
scanf("%d",&n);
int arr[N];
int max,min,i;
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
max_min(arr,n,&max,&min);
printf("%d %d\n",max,min);
}
1158 : 矩阵的最大值(指针专题)
#include
#define N 100
#define M 100
void FindMax(int p[][3], int m, int n, int *pRow, int *pCol)
{
int i,j,max=0;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(p[i][j]>max)
{
max=p[i][j];
*pRow=i;
*pCol=j;
}
}
}
}
int main()
{
int a[2][3],i,j,x,y;
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
FindMax(a,2,3,&x,&y);
printf("%d %d %d",a[x][y],x,y);
}
1159 : 逆序输出数组元素(指针专题)
#include
#define N 100
#define M 100
void fun(int p[],int t)
{
int *pa=p;
int left=0,right=t-1,tmp;
while(left<right)
{
tmp=*(pa+left);
*(pa+left)=*(pa+right);
*(pa+right)=tmp;
left++;
right--;
}
}
int main()
{
int a[10],i,j,x,y;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
fun(a,10);
for(i=0;i<10;i++)
{
if(i<9)
printf("%d ",a[i]);
else
printf("%d",a[i]);
}
}
1160 : 字符串长度(指针专题)
#include
#include
#define N 100
int len(char* sp)
{
int count = 0;
for (; *sp != '\0'; sp++)
{
if (*sp != ' ')
{
count++;
}
}
return count;
}
int main()
{
char arr[N];
int lens;
gets(arr);
lens = len(arr);
printf("%d\n", lens);
}
1161 : 循环移动(指针专题)
#include
#include
#define N 1001
int main()
{
int n;
scanf("%d", &n);
int* p = (int*)malloc(sizeof(int) * n);
int* a = p;
for (int i = 0; i < n; i++)
{
scanf("%d", p + i);
}
int k;
scanf("%d", &k);
for (int i = 0; i < k; i++)
{
int tem = *(p + n - 1);
p = a + n - 1;
while (p>a)
{
*p = *(p - 1);
p--;
}
*p = tem;
}
p = a;
for (int i = 0; i < n; i++)
{
if(i<n-1)
printf("%d ", *(p+i));
else
printf("%d", *(p + i));
}
}
1162 : 亲和串(指针专题)
#include
#include
#include
#include
#define N 200000
int main()
{
char s1[N];
char s2[N];
char s3[N];
while (gets(s1) != NULL)
{
gets(s2);
int len1 = strlen(s1);
int len2 = strlen(s2);
if (len1 < len2)
{
printf("no\n");
}
else
{
strcpy(s3, s1);
strcat(s3, s1);
char* p = strstr(s3, s2);
if (p != NULL)
{
printf("yes\n");
}
else
{
printf("no\n");
}
}
}
}
1163 : 在线判题(指针专题)
#include
#include
#include
int Judge(char *s1, char *s2)
{
char a1[1000], a2[1000];
int i, j = 0;
for(i = 0; s1[i] != '\0'; i++)
{
if(s1[i] != ' ' && s1[i] != '\t' && s1[i] != '\n')
a1[j++] = s1[i];
}
a1[j] = '\0';
j = 0;
for(i = 0; s2[i] != '\0'; i++)
{
if(s2[i] != ' ' && s2[i] != '\t' && s2[i] !='\n')
a2[j++] = s2[i];
}
a2[j] = '\0';
if(strlen(a1) == strlen(a2))
{
for(i = 0; i < strlen(a1); i++)
{
if(a1[i] != a2[i])
return 0;
}
return 1;
}
else
return 0;
}
int main()
{
int n, i, flag = 0, a, b;
char s[1000], s1[1000], s2[1000], buf[1000];
scanf("%d",&n);
for(i = 0; i < n; i++)
{
flag = 0;
a = 0;
b = 0;
memset(s1,0,sizeof(s1));
memset(s1,0,sizeof(s2));
while(1)
{
if(flag == 0)
{
gets(s);
if(strcmp(s,"START") == 0)
flag = 1;
}
else if(flag == 1)
{
gets(s);
flag = 2;
if(strcmp(s,"END") == 0)
break;
strcpy(s1,s);
a++;
}
else if(flag == 2)
{
gets(buf);
if(strcmp(buf,"END") == 0)
break;
strcat(s1,buf);
a++;
}
}
flag = 0;
while(1)
{
if(flag == 0)
{
gets(s);
if(strcmp(s,"START") == 0)
flag = 1;
}
else if(flag == 1)
{
gets(s);
flag = 2;
if(strcmp(s2,"END") == 0)
break;
strcpy(s2,s);
b++;
}
else if(flag == 2)
{
gets(buf);
if(strcmp(buf,"END") == 0)
break;
strcat(s2,buf);
b++;
}
}
if(strcmp(s1,s2) == 0 && a == b)
printf("Accepted\n");
else
{
if(Judge(s1,s2))
printf("Presentation Error\n");
else
printf("Wrong Answer\n");
}
}
return 0;
}
1164 : 实数的小数部分(指针专题)
#include
#include
#define N 105
char* decimal(char* p)
{
while (*p != '\0')
{
if (*p == '.')
{
break;
}
p++;
}
return p;
}
int main()
{
char arr[N];
gets(arr);
char* a;
char* b;
a = decimal(arr);
b = &arr[strlen(arr) - 1];
if (*b != '0')
{
printf("%c", '0');
while (*a != '\0')
{
printf("%c", *a);
a++;
}
}
else
{
while (*b != '.')
{
if (*b != '0')
{
b++;
break;
}
b--;
}
if (*b == '.')
{
printf("%s", "No decimal part");
}
else
{
printf("%c", '0');
while (a != b)
{
printf("%c", *a);
a++;
}
}
}
}
1165 : 实数取整(指针专题)
#include
#include
#define N 105
char* rounding(char* p)
{
while (*p != '\0')
{
if (*p == '.')
{
break;
}
p++;
}
return p;
}
int main()
{
char arr[N];
gets(arr);
char* a;
char* b;
a = rounding(arr);
b = &arr[0];
if (*b != '0')
{
while (b != a)
{
printf("%c", *b);
b++;
}
}
else
{
while (*b != '.')
{
if (*b != '0')
{
break;
}
b++;
}
if (*b == '.')
{
printf("%c", '0');
}
else
{
while (a != b)
{
printf("%c", *b);
b++;
}
}
}
}
1166 : 逆转数(指针专题)
#include
#include
#include
#define N 105
void reverse(char* str)
{
int left = 0;
int right = 0;
int len = strlen(str);
int i;
for (i = 0; i < len; i++)
{
if (isdigit(str[i]))
{
left = i;
break;
}
}
for (i = len - 1; i >= 0; i--)
{
if (str[i] != '0')
{
right = i;
break;
}
}
int r = right;
int tem;
for (int i = left; i <= (left + r) / 2; i++, right--)
{
tem = str[i];
str[i] = str[right];
str[right] = tem;
}
}
int main()
{
char arr[N];
gets(arr);
reverse(arr);
printf("%s\n", arr);
}
1168 : 大整数(指针专题)
#include
#include
#include
#include
#define N 105
int cmp(char* a, char* b)
{
int len1 = strlen(a);
int len2 = strlen(b);
if (len1 > len2)
{
return 1;
}
else if (len1 < len2)
{
return -1;
}
else
{
if (strcmp(a, b) == 0)
{
return 0;
}
else if (strcmp(a, b) > 0)
{
return 1;
}
else
return -1;
}
}
int main()
{
char arr[N], brr[N], crr[N], str[N];
gets(arr);
gets(brr);
gets(crr);
int x, y, z;
x = cmp(arr, brr);
if (x == 1)
{
strcpy(str, arr);
strcpy(arr, brr);
strcpy(brr, str);
}
y = cmp(arr, crr);
if (y == 1)
{
strcpy(str, arr);
strcpy(arr, crr);
strcpy(crr, str);
}
z = cmp(brr, crr);
if (z == 1)
{
strcpy(str, brr);
strcpy(brr, crr);
strcpy(crr, str);
}
printf("%s\n%s\n%s", arr, brr, crr);
}
1169 : 单数变复数(指针专题)
#include
#include
#define N 25
int main()
{
char arr[N];
gets(arr);
int len = strlen(arr);
int b = len - 1;
if (arr[b] == 'y')
{
arr[b] = 'i';
strcat(arr, "es");
}
else if (arr[b] == 's' || arr[b] == 'x' || (arr[b] == 'h' && arr[b - 1] == 'c') || (arr[b] == 'h' && arr[b - 1] == 's'))
{
strcat(arr, "es");
}
else if (arr[b] == 'o')
{
strcat(arr, "es");
}
else
{
strcat(arr, "s");
}
printf("%s\n", arr);
}
1170 : 最长字符串(指针专题)
#include
#include
#include
#define N 85
void maxLenStr(char* str[N], int n, int* max)
{
int i, j = 0;
for (i = 0; i < n; i++)
{
if (strlen(str[j]) < strlen(str[i]))
{
j = i;
}
}
*max = j;
}
int main()
{
int i, max;
char* arr[N], s[N];
for (i = 0;; i++)
{
gets(s);
if (strcmp(s, "****") == 0)
{
break;
}
else
{
arr[i] = (char*)malloc(sizeof(char) * (strlen(s) + 1));
strcpy(arr[i], s);
}
}
maxLenStr(arr, i, &max);
printf("%s", arr[max]);
}
1171 : 加密(指针)
#include
#include
#include
#define N 205
void encrypt(char *plain, char *cipher)
{
for(;*plain!='\0';plain++,cipher++)
{
*cipher=*plain-24;
}
*cipher='\0';
}
int main()
{
char arr[N],brr[N];
gets(arr);
encrypt(arr,brr);
int len=strlen(brr);
for(int i=0;i<len;i++)
{
printf("%d%d",brr[i]/10,brr[i]%10);
}
printf("\n");
}
1172 : 密码解密(指针专题)
#include
#include
#include
#define N 205
void encrypt(char *cipher,char *plain)
{
int len=strlen(cipher);
int tem,j;
for(;*cipher!='\0';cipher+=2,plain++)
{
*plain=(*cipher-'0')*10+(*(cipher+1)-'0')+24;
}
*plain='\0';
}
int main()
{
char arr[N],brr[N];
gets(arr);
encrypt(arr,brr);
printf("%s",brr);
printf("\n");
}
1173 : 矩阵边界和(指针专题)
#include
#include
#include
#define N 205
int main()
{
int m,n,sum=0;
scanf("%d %d",&m,&n);
int *arr=(int *)malloc(m*n*sizeof(int));
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i*n+j]);
}
}
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
if(i==0||j==0||i==m-1||j==n-1)
{
sum+=arr[i*n+j];
}
}
}
printf("%d",sum);
}
1174 : 矩阵转置(指针专题)
#include
#include
#include
#define N 205
int main()
{
int m,n,sum=0;
scanf("%d %d",&m,&n);
int *arr=(int *)malloc(m*n*sizeof(int));
for(int i=0;i<m;i++)
{
for(int j=0;j<n;j++)
{
scanf("%d",&arr[i*n+j]);
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
if(j<m-1)
printf("%d ",arr[j*n+i]);
else
printf("%d",arr[j*n+i]);
}
if(i<n-1)
{
printf("\n");
}
}
free(arr);
}
1175 : 长整数排序(指针专题)
#include
#include
#include
#define N 205
int greater(char *s1, char *s2)
{
int sum1=0,sum2=0,i;
int len1=strlen(s1);
int len2=strlen(s2);
for(i=0;s1[i]!='\0';i++)
{
if(s1[i]=='0')
sum1++;
else
break;
}
if(sum1==len1)
{
s1[0]='0';
s1[1]='\0';
sum1=0;
len1=1;
}
if(sum1>0)
{
for(i=0;i<len1-sum1;i++)
{
s1[i]=s1[i+sum1];
}
s1[i]='\0';
}
for(i=0;s2[i]!='\0';i++)
{
if(s2[i]=='0')
sum2++;
else
break;
}
if(sum2==len2)
{
s2[0]='0';
s2[1]='\0';
sum2=0;
len2=1;
}
if(sum2>0)
{
for(i=0;i<len2-sum2;i++)
{
s2[i]=s2[i+sum2];
}
s2[i]='\0';
}
len1=len1-sum1;
len2=len2-sum2;
if(len1>len2)
{
return 1;
}
else if(len1<len2)
{
return -1;
}
else
{
if(strcmp(s1,s2)>0)
{
return 1;
}
else if(strcmp(s1,s2)<0)
{
return -1;
}
else
{
return 0;
}
}
}
int main()
{
int n,i,j;
scanf("%d",&n);
char *arr[N],tem[N];
for(i=0;i<n;i++)
{
arr[i]=(char *)malloc(100*sizeof(char));
scanf("%s",arr[i]);
}
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(greater(arr[i],arr[j])>0)
{
strcpy(tem,arr[i]);
strcpy(arr[i],arr[j]);
strcpy(arr[j],tem);
}
}
}
for(i=0;i<n;i++)
{
printf("%s\n",arr[i]);
}
}
1176 : 查找最大字符串(指针专题)
#include
#include
#include
#define N 10
void find(char *name[], int n, int *p)
{
int j=0;
for(int i=0;i<n;i++)
{
if(strcmp(name[i],name[j])>0)
{
j=i;
}
}
*p=j;
}
int main()
{
int i;
int p;
char *arr[N],s[N]={0};
for(i=0;;i++)
{
gets(s);
if(strcmp(s,"*****")==0)
{
break;
}
else
{
arr[i]=(char *)malloc(6*sizeof(char));
strcpy(arr[i],s);
}
}
find(arr,i,&p);
printf("%s",arr[p]);
}
1177 : 字符串排序(指针专题)
#include
#include
#include
#define N 25
void fun(char *pa[],int n)
{
char str[N];
for(int i=0;i<4;i++)
{
for(int j=0;j<4-i;j++)
{
if(strcmp(pa[j],pa[j+1])>0)
{
strcpy(str,pa[j]);
strcpy(pa[j],pa[j+1]);
strcpy(pa[j+1],str);
}
}
}
}
int main()
{
char *arr[N];
for(int i=0;i<5;i++)
{
arr[i]=(char *)malloc(100*sizeof(char));
gets(arr[i]);
}
fun(arr,5);
for(int i=0;i<5;i++)
{
puts(arr[i]);
}
}
1178 : 按要求排序(指针专题)
#include
#include
#include
void sort1(int a[], int n, int (*cmp)(int x,int y));
int CmpAsc(int x, int y);
int CmpDec(int x, int y);
int CmpAbsAsc(int x, int y);
int main()
{
int a[10],i,n;
int slt;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&slt);
switch(slt)
{
case 1: sort1(a, n, CmpAsc); break;
case 2: sort1(a, n, CmpDec); break;
case 3: sort1(a, n, CmpAbsAsc);break;
}
for(i=0;i<n-1;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-1]);
return 0;
}
void sort1(int a[], int n, int (*cmp)(int x,int y))
{
int t;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
if(cmp(a[i],a[j]))
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
int CmpAsc(int x, int y)
{
if(x>y)
return 1;
return 0;
}
int CmpDec(int x, int y)
{
1179 : 字符串比较 多实例
#include
#include
#include
#include
#define N 10000
int main()
{
char arr[N],brr[N];
while(scanf("%s%s",arr,brr)!=EOF)
{
for(int i=0;i<strlen(arr);i++)
{
if(islower(arr[i]))
{
arr[i]=(arr[i]-'a')*2+1;
}
else
{
arr[i]=(arr[i]-'A')*2;
}
}
for(int i=0;i<strlen(brr);i++)
{
if(islower(brr[i]))
{
brr[i]=(brr[i]-'a')*2+1;
}
else
{
brr[i]=(brr[i]-'A')*2;
}
}
if(strcmp(arr,brr)<0)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
}
}
1180 : 成绩统计(结构体专题)
#include
#define N 105
int main()
{
struct Student
{
char num[15];
char name[25];
int chinese;
int math;
int english;
}student[N];
int n,max=0,j;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s%s%d%d%d",&student[i].num,&student[i].name,&student[i].chinese,&student[i].math,&student[i].english);
if(student[i].chinese+student[i].math+student[i].english>max)
{
max=student[i].chinese+student[i].math+student[i].english;
j=i;
}
}
printf("%s %s %d %d %d\n",student[j].num,student[j].name,student[j].chinese,student[j].math,student[j].english);
}
1181 : 谁的年龄最小(结构体专题)
#include
#define N 105
int main()
{
struct Student
{
char name[25];
int year;
int month;
int day;
}student[N];
int n,max=0,mmx=0,mmmx=0,j;
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s%d%d%d",&student[i].name,&student[i].year,&student[i].month,&student[i].day);
if(student[i].year>max||student[i].year==max&&student[i].month>mmx||student[i].year==max&&student[i].month==mmx&&student[i].day>mmmx)
{
max=student[i].year;
mmx=student[i].month;
mmmx=student[i].day;
j=i;
}
}
printf("%s %d-%02d-%02d",student[j].name,student[j].year,student[j].month,student[j].day);
}
1182 : 按出生日期排序(结构体专题)
#include
#include
#define N 105
int main()
{
struct Student
{
char name[25];
int year;
int month;
int day;
}student[N];
int n,a,b,c,d,j;
char str[N];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
scanf("%s%d%d%d",&student[i].name,&student[i].year,&student[i].month,&student[i].day);
}
for(int i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
if(student[j].month>student[j+1].month||student[j].month==student[j+1].month&&student[j].day>student[j+1].day)
{
a=student[j].month;
student[j].month=student[j+1].month;
student[j+1].month=a;
b=student[j].day;
student[j].day=student[j+1].day;
student[j+1].day=b;
strcpy(str,student[j].name);
strcpy(student[j].name,student[j+1].name);
strcpy(student[j+1].name,str);
d=student[j].year;
student[j].year=student[j+1].year;
student[j+1].year=d;
}
}
}
for(int i=0;i<n;i++)
{
printf("%s %d-%02d-%02d\n",student[i].name,student[i].year,student[i].month,student[i].day);
}
}
1183 : 平面点排序(一)(结构体专题)
#include
#include
#define N 15
struct Sqrt
{
int a;
int b;
}sqr[N];
void aver(double sum[N],int n,struct Sqrt *puts)
{
double tem;
int a,b,max,mmax;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(sum[j]>sum[j+1])
{
tem=sum[j];
sum[j]=sum[j+1];
sum[j+1]=tem;
max=puts[j].a;
puts[j].a=puts[j+1].a;
puts[j+1].a=max;
mmax=puts[j].b;
puts[j].b=puts[j+1].b;
puts[j+1].b=mmax;
}
}
}
}
int main()
{
int n;
scanf("%d",&n);
double sum[N]={0};
struct Sqrt *pstu;
for(int i=0;i<n;i++)
{
scanf("%d %d",&sqr[i].a,&sqr[i].b);
sum[i]=sqrt(sqr[i].a*sqr[i].a+sqr[i].b*sqr[i].b);
}
pstu=sqr;
aver(sum,n,pstu);
for(int i=0;i<n;i++)
{
if(i<n-1)
printf("(%d,%d) ",sqr[i].a,sqr[i].b);
else
printf("(%d,%d)",sqr[i].a,sqr[i].b);
}
}
1184 : 平面点排序(二)(结构体专题)
#include
#include
#define N 15
struct Sqrt
{
int a;
int b;
}sqr[N];
void aver(int n,struct Sqrt *puts)
{
double tem;
int a,b,max,mmax;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(puts[j].a>puts[j+1].a||puts[j].a==puts[j+1].a&&puts[j].b>puts[j+1].b)
{
max=puts[j].a;
puts[j].a=puts[j+1].a;
puts[j+1].a=max;
mmax=puts[j].b;
puts[j].b=puts[j+1].b;
puts[j+1].b=mmax;
}
}
}
}
int main()
{
int n;
scanf("%d",&n);
double sum[N]={0};
struct Sqrt *pstu;
for(int i=0;i<n;i++)
{
scanf("%d %d",&sqr[i].a,&sqr[i].b);
}
pstu=sqr;
aver(n,pstu);
for(int i=0;i<n;i++)
{
if(i<n-1)
printf("(%d,%d) ",sqr[i].a,sqr[i].b);
else
printf("(%d,%d)\n",sqr[i].a,sqr[i].b);
}
for(int i=n-1;i>=0;i--)
{
if(i>0)
printf("(%d,%d) ",sqr[i].a,sqr[i].b);
else
printf("(%d,%d)",sqr[i].a,sqr[i].b);
}
}
1185 : 数星星(结构体专题)
#include
#define N 305
int main()
{
int n;
scanf("%d",&n);
struct Star{
int x;
int y;
}star[N];
int sum=0;
for(int i=0;i<n;i++)
{
scanf("%d %d",&star[i].x,&star[i].y);
}
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(star[i].x==star[j].x&&star[i].y==star[j].y)
{
sum++;
}
}
}
printf("%d",n-sum);
}
1186 : 奖学金(结构体专题)
#include
#define N 305
int main()
{
int n;
scanf("%d",&n);
getchar();
struct Star{
char name[N];
int x;
int y;
char b;
char f;
int z;
}star[N];
int sum[N]={0};
for(int i=0;i<n;i++)
{
scanf("%s %d %d %c %c %d",&star[i].name,&star[i].x,&star[i].y,&star[i].b,&star[i].f,&star[i].z);
if(star[i].x>80&&star[i].z>0)
{
sum[i]+=8000;
}
if(star[i].x>85&&star[i].y>80)
{
sum[i]+=4000;
}
if(star[i].x>90)
{
sum[i]+=2000;
}
if(star[i].x>85&&star[i].f=='Y')
{
sum[i]+=1000;
}
if(star[i].y>80&&star[i].b=='Y')
{
sum[i]+=850;
}
}
int max=0,zsum=0,j;
for(int i=0;i<n;i++)
{
zsum+=sum[i];
if(sum[i]>max)
{
max=sum[i];
j=i;
}
}
printf("%s\n%d\n%d",star[j].name,max,zsum);
}
1187 : 棒棒糖(结构体专题)
#include
#define N 305
int main()
{
int num,n;
scanf("%d%d",&num,&n);
struct Star{
double x;
int y;
}star[N];
for(int i=0;i<n;i++)
{
scanf("%lf%d",&star[i].x,&star[i].y);
}
struct Star tem;
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(star[j].x>star[j+1].x)
{
tem=star[j];
star[j]=star[j+1];
star[j+1]=tem;
}
}
}
double price=0;
for(int i=0;i<n;i++)
{
if(star[i].y<num)
{
price=price+(star[i].x*star[i].y);
num=num-star[i].y;
}
else
{
price+=star[i].x*num;
break;
}
}
printf("%.2lf",price);
}
1188 : 选票统计(一)(结构体专题)
#include
#include
#define N 15
int main()
{
int n;
scanf("%d",&n);
struct piao{
char name[N];
int votes;
}piaoname[5]={{"zhang",0},{"wang",0},{"zhao",0},{"liu",0},{"miao",0}};
char vote[N];
for(int i=0;i<n;i++)
{
scanf("%s",vote);
for(int j=0;j<5;j++)
{
if(strcmp(piaoname[j].name,vote)==0)
{
piaoname[j].votes++;
}
}
}
for(int j=0;j<5;j++)
{
printf("%s %d\n",piaoname[j].name,piaoname[j].votes);
}
}
1189 : 选票统计(二)(结构体专题)
#include
#include
#define N 505
int main()
{
struct piao{
char name[25];
int votes;
}piaoname[N];
char str[N];
int flag=0,n=0;
while(scanf("%s",str),strcmp(str,"#")!=0)
{
flag=0;
for(int i=0;i<n;i++)
{
if(strcmp(str,piaoname[i].name)==0)
{
flag=1;
piaoname[i].votes++;
break;
}
}
if(flag==0)
{
strcpy(piaoname[n].name,str);
piaoname[n].votes+1;
n++;
}
}
int max=0;
for(int j=0;j<n;j++)
{
if(piaoname[j].votes>piaoname[max].votes)
{
max=j;
}
}
printf("%s\n",piaoname[max].name);
}
1190 : 查询记录(结构体专题)
#include
#include
#define N 505
int main()
{
int n;
scanf("%d",&n);
struct Student{
char xue[15];
char name[15];
int c;
int m;
int e;
}student[N];
for(int i=0;i<n;i++)
{
scanf("%s %s %d %d %d",student[i].xue,student[i].name,&student[i].c,&student[i].m,&student[i].e);
}
char num[15];
scanf("%s",num);
int flag=0;
for(int i=0;i<n;i++)
{
if(strcmp(num,student[i].xue)==0)
{
flag=1;
printf("%s %s %d %d %d",student[i].xue,student[i].name,student[i].c,student[i].m,student[i].e);
}
}
if(flag==0)
{
printf("Not Found");
}
}
1191 : 添加记录(结构体专题)
#include
#include
#define N 505
int main()
{
int n;
scanf("%d",&n);
struct Student{
char xue[15];
char name[21];
int c;
int m;
int e;
}student[N];
int i=0;
for(i=0;i<n;i++)
{
scanf("%s %s %d %d %d",student[i].xue,student[i].name,&student[i].c,&student[i].m,&student[i].e);
}
struct Student tem;
scanf("%s %s %d %d %d",tem.xue,tem.name,&tem.c,&tem.m,&tem.e);
int flag=0,j;
for(j=0;j<=n;j++)
{
if(strcmp(student[j].xue,tem.xue)>0||j==n)
{
for(i=n;i>j;i--)
{
student[i]=student[i-1];
}
student[j]=tem;
break;
}
else if(strcmp(student[j].xue,tem.xue)==0)
{
printf("error!");
return 0;
break;
}
}
for(j=0;j<=n;j++)
{
printf("%s %s %d %d %d\n",student[j].xue,student[j].name,student[j].c,student[j].m,student[j].e);
}
}
1192 : 删除记录(结构体专题)
#include
#include
#define N 505
int main()
{
int n;
scanf("%d",&n);
struct Student{
char xue[15];
char name[21];
int c;
int m;
int e;
}student[N];
int i=0;
for(i=0;i<n;i++)
{
scanf("%s %s %d %d %d",student[i].xue,student[i].name,&student[i].c,&student[i].m,&student[i].e);
}
char tem[15];
scanf("%s",tem);
int flag=0,j;
for(j=0;j<=n;j++)
{
if(strcmp(student[j].xue,tem)==0)
{
flag=1;
for(i=j;i<n-1;i++)
{
student[i]=student[i+1];
}
break;
}
}
if(flag==0)
{
printf("error!");
return 0;
}
for(j=0;j<n-1;j++)
{
printf("%s %s %d %d %d\n",student[j].xue,student[j].name,student[j].c,student[j].m,student[j].e);
}
}
1193 : 单科成绩排序(结构体专题)
#include
#include
#define N 505
int main()
{
int n;
scanf("%d",&n);
struct Student{
char xue[15];
char name[21];
int c;
int m;
int e;
}student[N];
int i=0;
for(i=0;i<n;i++)
{
scanf("%s %s %d %d %d",student[i].xue,student[i].name,&student[i].c,&student[i].m,&student[i].e);
}
int mm;
scanf("%d",&mm);
struct Student tem;
if(mm==1)
{
for(i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(student[j].c<student[j+1].c||student[j].c==student[j+1].c&&strcmp(student[j].xue,student[j+1].xue)>0)
{
tem=student[j];
student[j]=student[j+1];
student[j+1]=tem;
}
}
}
}
else if(mm==2)
{
for(i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(student[j].m<student[j+1].m||student[j].m==student[j+1].m&&strcmp(student[j].xue,student[j+1].xue)>0)
{
tem=student[j];
student[j]=student[j+1];
student[j+1]=tem;
}
}
}
}
else if(mm==3)
{
for(i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(student[j].e<student[j+1].e||student[j].e==student[j+1].e&&strcmp(student[j].xue,student[j+1].xue)>0)
{
tem=student[j];
student[j]=student[j+1];
student[j+1]=tem;
}
}
}
}
for(i=0;i<n;i++)
{
printf("%s %s %d %d %d\n",student[i].xue,student[i].name,student[i].c,student[i].m,student[i].e);
}
}
1194 : 总成绩排序(结构体专题)
#include
#include
#define N 105
int main()
{
int n;
scanf("%d",&n);
struct Student{
char xue[15];
char name[25];
int c;
int m;
int e;
int sum;
}student[N];
int sum[N];
int i=0;
for(i=0;i<n;i++)
{
scanf("%s%s%d%d%d",student[i].xue,student[i].name,&student[i].c,&student[i].m,&student[i].e);
student[i].sum=student[i].c+student[i].m+student[i].e;
}
struct Student tem;
for(i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(student[j].sum<student[j+1].sum||student[j].sum==student[j+1].sum&&strcmp(student[j].name,student[j+1].name)>0)
{
tem=student[j];
student[j]=student[j+1];
student[j+1]=tem;
}
}
}
for(i=0;i<n;i++)
{
printf("%s %s %d %d %d %d\n",student[i].xue,student[i].name,student[i].c,student[i].m,student[i].e,student[i].sum);
}
}
1195 : 猴子选大王(结构体专题)
int main()
{
int m,n,exitnum=0;
int mark=1;
int monkey[999];
scanf("%d%d",&m,&n);
for(int i=1;i<=m;i++)
{
monkey[i]=i;
}
for(int i=1,cnt=1;;i++,cnt++)
{
if(i>m)
{
i=1;
mark++;
}
if(monkey[i]==0)
{
cnt--;
continue;
}
if(cnt%n==0)
{
monkey[i]=0;
exitnum++;
}
if(m-exitnum==1)
{
break;
}
}
for(int i=1;i<m;i++)
{
if(monkey[i]!=0)
printf("%d\n",monkey[i]);
}
return 0;
}
1196 : 数星星(二)(结构体专题)
#include
#include
#include
using namespace std;
struct star
{
double x;
double y;
}sr[310];
double slope(star h,star q,star j)
{
return (q.x-h.x)*(j.y-h.y)
-(j.x-h.x)*(q.y-h.y);
}
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
cin>>sr[i].x>>sr[i].y;
int a[100000]={0},m=0;
for(int i=0;i<n-1;i++)
for(int j=i+1;j<n;j++)
{
for(int k=j;k<n;k++)
{
if(slope(sr[i],sr[j],sr[k])==0)
a[m]++;
}
m++;
}
sort(a,a+m);
cout<<a[m-1]<<endl;
return 0;
}
1197 : 考试排名(一)(结构体专题)
#include
#include
#include
typedef struct student
{
char name[21];
int ss;
int num[11];
int sum;
}student;
void swap(student *x