ZZNUOJ_C语言算法题目(AC代码)

ZZNUOJ_C语言算法题目

  • 1000 : A+B Problem
  • 1001 : 植树问题
  • 1002 : 简单多项式求值
  • 1003 : 两个整数的四则运算
  • 1004 : 三位数的数位分离
  • 1005 : 整数幂
  • 1006 : 求等差数列的和
  • 1007 : 鸡兔同笼
  • 1008 : 美元和人民币
  • 1009 : 求平均分
  • 1010 : 求圆的周长和面积
  • 1011 : 圆柱体表面积
  • 1012 : 求绝对值
  • 1013 : 求两点间距离
  • 1014 : 求三角形的面积
  • 1015 : 二次方程的实根
  • 1016 : 银行利率
  • 1017 : 表面积和体积
  • 1018 : 奇数偶数
  • 1019 : 公园门票
  • 1020 : 两整数排序
  • 1021 : 三数求大值
  • 1022 : 三整数排序
  • 1023 : 大小写转换
  • 1024 : 计算字母序号
  • 1025 : 最大字符
  • 1026 : 字符类型判断
  • 1027 : 判断水仙花数
  • 1028 : I love 闰年!
  • 1029 : 三角形判定
  • 1030 : 判断直角三角形
  • 1031 : 判断点在第几象限
  • 1032 : 员工薪水
  • 1033 : 五级制成绩
  • 1034 : 夏季促销
  • 1035 : 分段函数求值
  • 1036 : 某年某月有多少天
  • 1037 : 四则运算
  • 1038 : 绝对值最大
  • 1039 : n个数求和
  • 1040 : 数列求和1
  • 1041 : 数列求和2
  • 1042 : 数列求和3
  • 1043 : 最大值
  • 1044 : 不及格率
  • 1045 : 数值统计
  • 1046 : 奇数的乘积
  • 1047 : 对数表
  • 1048 : 阶乘表
  • 1049 : 平方和与立方和
  • 1050 : 阶乘的累加和
  • 1051 : 求数列的和
  • 1052 : 前n项和
  • 1053 : 正弦函数
  • 1054 : 猴子吃桃
  • 1055 : 兔子繁殖问题
  • 1056 : 整存零取
  • 1057 : 素数判定
  • 1058 : 求解不等式
  • 1059 : 最高分
  • 1060 : 逆序输出各位数字
  • 1061 : 顺序输出各位数字
  • 1062 : 最大公约数
  • 1063 : 最大公约与最小公倍
  • 1064 : 加密字符
  • 1065 : 统计数字字符的个数
  • 1066 : 字符分类统计
  • 1067 : 有问题的里程表
  • 1068 : 进制转换
  • 1069 : 向Z同学学习
  • 1070 : 小汽车的位置
  • 1071 : 分解质因子
  • 1072 : 青蛙爬井
  • 1073 : 画个圈圈诅咒你
  • 1074 : 百钱买百鸡
  • 1075 : 聚餐人数统计
  • 1076 : 三位数求解
  • 1077 : 字符串加密
  • 1078 : a+b(多实例测试1)
  • 1079 : a+b(多实例测试2)
  • 1080 : a+b(多实例测试3)
  • 1081 : n个数求和 (多实例测试)
  • 1082 : 敲7(多实例测试)
  • 1083 : 数值统计(多实例测试)
  • 1084 : 计算两点间的距离(多实例测试)
  • 1085 : 求奇数的乘积(多实例测试)
  • 1086 : ASCII码排序(多实例测试)
  • 1087 : 获取出生日期(多实例测试)
  • 1088 : 手机短号 (多实例)
  • 1089 : 阶乘的最高位
  • 1090 : 整数幂(多实例测试)
  • 1091 : 童年生活二三事(多实例测试)
  • 1092 : 素数表(函数专题)
  • 1093 : 验证哥德巴赫猜想(函数专题)
  • 1094 : 统计元音(函数专题)
  • 1095 : 时间间隔(多实例测试)
  • 1096 : 水仙花数(多实例测试)
  • 1097 : 计算平均成绩(函数专题)
  • 1098 : 复合函数求值(函数专题)
  • 1099 : 角谷猜想(多实例测试)
  • 1100 : 求组合数(函数专题)
  • 1101 : 逆序数字(函数专题)
  • 1102 : 火车票退票费计算(函数专题)
  • 1103 : 平均学分绩点(函数专题)
  • 1104 : 求因子和(函数专题)
  • 1105 : 判断友好数对(函数专题)
  • 1106 : 回文数(函数专题)
  • 1107 : 回文数猜想(函数专题)
  • 1108 : 打印数字图形(函数专题)
  • 1109 : 数根(函数专题)
  • 1110 : 最近共同祖先(函数专题)
  • 1111 : 多个整数的逆序输出(函数专题)
  • 1112 : 进制转换(函数专题)
  • 1113 : 递归调用的次数统计(函数专题)
  • 1114 : 逆序
  • 1115 : 数组最小值
  • 1116 : 删除元素
  • 1117 : 查找数组元素
  • 1118 : 数列有序
  • 1119 : 一维数组排序
  • 1120 : 最值交换
  • 1121 : 电梯
  • 1122 : 小明的调查作业
  • 1123 : 最佳校友
  • 1124 : 两个有序数组合并
  • 1125 : 上三角矩阵的判断
  • 1126 : 布尔矩阵
  • 1127 : 矩阵乘积
  • 1128 : 课程平均分
  • 1129 : 杨辉三角
  • 1130 : 第几天
  • 1131 : 最常用字符
  • 1132 : 数字字符统计
  • 1133 : 单词个数统计
  • 1134 : 字符串转换
  • 1135 : 算菜价
  • 1136 : 首字母变大写
  • 1137 : 查找最大元素
  • 1138 : C语言合法标识符
  • 1139 : 输出最短字符串
  • 1140 : 小数点后第n位 多实例
  • 1141 : 进制转换
  • 1142 : 二进制数的大小
  • 1143 : 最大值—多种进制
  • 1144 : 多种进制
  • 1145 : 有问题的里程表(2)
  • 1148 : 吃糖果
  • 1149 : 查找子数组
  • 1150 : 组合三位数之一
  • 1151 : 组合三位数之二
  • 1152 : 数数多少个整数
  • 1153 : 大整数加法
  • 1154 : 二分搜索
  • 1155 : 简易版最长序列
  • 1156 : 又是排序(指针专题)
  • 1157 : 最大值和最小值(指针专题)
  • 1158 : 矩阵的最大值(指针专题)
  • 1159 : 逆序输出数组元素(指针专题)
  • 1160 : 字符串长度(指针专题)
  • 1161 : 循环移动(指针专题)
  • 1162 : 亲和串(指针专题)
  • 1163 : 在线判题(指针专题)
  • 1164 : 实数的小数部分(指针专题)
  • 1165 : 实数取整(指针专题)
  • 1166 : 逆转数(指针专题)
  • 1168 : 大整数(指针专题)
  • 1169 : 单数变复数(指针专题)
  • 1170 : 最长字符串(指针专题)
  • 1171 : 加密(指针)
  • 1172 : 密码解密(指针专题)
  • 1173 : 矩阵边界和(指针专题)
  • 1174 : 矩阵转置(指针专题)
  • 1175 : 长整数排序(指针专题)
  • 1176 : 查找最大字符串(指针专题)
  • 1177 : 字符串排序(指针专题)
  • 1178 : 按要求排序(指针专题)
  • 1179 : 字符串比较 多实例
  • 1180 : 成绩统计(结构体专题)
  • 1181 : 谁的年龄最小(结构体专题)
  • 1182 : 按出生日期排序(结构体专题)
  • 1183 : 平面点排序(一)(结构体专题)
  • 1184 : 平面点排序(二)(结构体专题)
  • 1185 : 数星星(结构体专题)
  • 1186 : 奖学金(结构体专题)
  • 1187 : 棒棒糖(结构体专题)
  • 1188 : 选票统计(一)(结构体专题)
  • 1189 : 选票统计(二)(结构体专题)
  • 1190 : 查询记录(结构体专题)
  • 1191 : 添加记录(结构体专题)
  • 1192 : 删除记录(结构体专题)
  • 1193 : 单科成绩排序(结构体专题)
  • 1194 : 总成绩排序(结构体专题)
  • 1195 : 猴子选大王(结构体专题)
  • 1196 : 数星星(二)(结构体专题)
  • 1197 : 考试排名(一)(结构体专题)
  • 1198 : 考试排名(二)(结构体专题)
  • 1199 : 歌词的压缩存储(结构体专题)
  • 1200 : 数组的距离

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);
//	getchar();
	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
/*该函数用于除去s1和s2的空格符和制表符再进行判断*/
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()
{
 /*a和b做换行符计数器,flag当控制器,控制文件的读入*/
 	int n, i, flag = 0, a, b;
 /*buf和s做缓存判断,s1和s2分别是两个文件*/
 	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) //这里先判断是否已经结束,如果没有结束再将s复制给s1,下面同理
     				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;
 /*读入n和n个整数,存入数组a*/
   	scanf("%d",&n);
 	for(i=0;i<n;i++)
  		scanf("%d",&a[i]);
   /*读入用户的选择,存入slt; */
 	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))
{
 /*对数组a排序,排序原则由cmp指定,若cmp为真,表示两元素逆序*/
  	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)
{
 //如果x>y返回1,否则返回0;
  	if(x>y)
   		return 1;
  	return 0;

}
int CmpDec(int x, int y)
{
 //如果x
  	if(x<y)
   		return 1;
  	return 0;
 }
int CmpAbsAsc(int x, int y)
{
//如果abs(x)>abs(y)返回1,否则返回0
 	if(abs(x)>abs(y))
  		return 1;
//若绝对值相同,符号不同时,负数在前;
 	if(abs(x)==abs(y)&&x>y)//abs头文件不是math.h而是stdlib.h
  		return 1;
 return 0;
}

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;//exitnum代表退出猴子数量
 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++)
 {//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)
  	{//剩下的猴子只剩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

你可能感兴趣的:(算法,c语言)