广州住房保障城市建设局网站,寮步网站仿做,北京海淀租车公司价格,深圳比较好网站制作公司有哪些1.与指定数字相同的数的个数 题目描述:输出一个整数序列中与指定数字相同的数的个数。 输入 输入包含三行: 第一行为N#xff0c;表示整数序列的长度(N≤100); 第二行为N个整数#xff0c;整数之间以一个空格分开; 第三行包含一个整数#xff0c;为指定的数字m。 输出 输出为…1.与指定数字相同的数的个数 题目描述:输出一个整数序列中与指定数字相同的数的个数。 输入 输入包含三行: 第一行为N表示整数序列的长度(N≤100); 第二行为N个整数整数之间以一个空格分开; 第三行包含一个整数为指定的数字m。 输出 输出为N个数中与m相同的数的个数。 输入样例 3 2 3 2 2 输出样例 2 #includeiostream
using namespace std;
int main()
{ int n,m,a[101]; int ans0; int i; cinn;//共有n个数 for(i1;in;i) cina[i];//读入n个数 cinm;//指定数m for(i1;in;i)//对数据逐个进行比较 if(a[i]m)//若与指定数字相同 ans;//计数器1 coutansendl; return 0;
}
2.图像相似度 题目描述 给出两幅相同大小的黑白图像(用0-1矩阵)表示求它们的相似度。 说明:若两幅图像在相同位置上的像素点颜色相同则称它们在该位置具有相同的像素点。两幅图像的相似度定义 为相同像素点数占总像素点数的百分比。 输入 第一行包含两个整数m和n表示图像的行数和列数中间用单个空格隔开。1 m 100,1 n 100. 之后m行每行n个整数0或1表示第一幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。 之后m行每行n个整数0或1表示第二幅黑白图像上各像素点的颜色。相邻两个数之间用单个空格隔开。 输出 一个实数表示相似度(以百分比的形式给出)精确到小数点后两位。 样例输入 3 3 1 0 1 0 0 1 1 1 0 1 1 0 0 0 1 0 0 1 样例输出 44.44 解析: 解决方法 首先我们要明确我们要做什么 首先输入矩阵的行号(m)和列号(n)然后输入一个(2m)*n的矩阵。 前m*n矩阵是第一幅画后m*n矩阵是第二幅画。 然后我们要找到两幅画之间的联系第一幅画与第二幅画对应的坐标点的行号始终保持在m个单位的距离。 而他们的列号始终相等。例如第一幅画的某个坐标点是23那么第二幅画相对应的坐标点是2m3 其次我们要去判断如果两幅画相对应的坐标点相同则加一。得出总数sum。 最后进行计算sum/(m*n); #include stdio.h
#include stdlib.h
#define Max 101
int main()
{int m,n;int i,j;int sum0;int matrix[Max][Max];int point;scanf(%d%d,m,n);for (i1;im;i)for (j1;jn;j)scanf(%d, matrix[i][j]);for (i1;im;i)for (j1;jn;j){scanf(%d, point);if (pointmatrix[i][j])sum;}printf(%.2f,(float)(sum*100)/(m*n));return 0;
}
3.找第一个只出现一次的字符 题目描述给定一个只包含小写字母的字符串请你找到第一个仅出现一次的字符。如果没有输出no。 输入 一个字符串长度小于100000。 1 输出 输出第一个仅出现一次的字符若没有则输出no。 1 样例输入 abcabd 样例输出 c #includestdio.h
#includestring.h
int main()
{char a[100000];int c[100000]{0}; //存放每个字符出现的次数初始时全为0gets(a);for(int i0;istrlen(a);i) //遍历字符串中每一个字符{for(int j0;jstrlen(a);j)//遍历第二次让a[j]和a[i]对比{if(a[i]a[j]) c[i]; //如果相同c[i]}if(c[i]1){printf(%c\n,a[i]);return 0;}}printf(no\n);return 0;
}
4.最大值和最小值的差 题目描述:输入11个整数计算它们的最大值和最小值。 样例输入 0 1 2 3 4 5 6 7 8 9 10 样例输出 10 0 #includestdio.h
int main(){int a[11];for(int i0; i11; i){scanf(%d,a[i]);}for(int i0;i11-1;i) {for(int ji1;j11;j){if(a[i]a[j]){int t a[i];a[i] a[j];a[j] t;}}}printf(%d %d,a[10],a[0]);
}
5.和为给定数 题目描述:给出若干个整数询问其中是否有一对数的和等于给定的数。 输入 第一行是整数n(0n≤100,000)表示有n个整数。 第二行是n个整数。整数的范围是在0到108之间。 第三行是一个整数m(0≤m≤230)表示需要得到的和。 输出 若存在和为m的数对输出两个整数小的在前大的在后中间用单个空格隔开。若有多个数对满足条件 选择数对中较小的数更小的。若找不到符合要求的数对输出一行NO。 样例输入 4 2 5 1 4 6 样例输出 1 5 #include iostream
#include cstdio
#include vector
#include queue
#include algorithm
#include cstring
#include string
#include cmath
#include map
#include cstdlib
#define sf(a) scanf(%d\n,a)
#define pf(a) printf(%.6lf ,a)
#define E 1e-8
#define ms(a) memset(a,0,sizeof a)
#define rep(a,b,c) for(int ab;ac;a)
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf0x3f3f3f3f;
const int idata1e55;
ll minninf,maxx-inf;
ll n,ans,t,k;
char *ch;
ll step[idata];
//ll temp[idata];
ll cnt;
ll query,judge,flag;
priority_queue int,vectorint,greaterint q;
pairint,intp[idata];int main()
{while(cinn){rep(i,1,n)cinstep[i];stable_sort(step1,step1n);cinquery;rep(i,1,n-1){int tempquery-step[i];if(binary_search(step1,step1n,temp)){coutstep[i] tempendl;return 0;;}}coutNoendl;}return 0;
}
6.成绩排序 题目描述:给出班里某门课程的成绩单请你按成绩从高到低对成绩单排序输出如果有相同分数则名字字典序小的在前。 输入 第一行为n(0n20)表示班里的学生数目; 接下来的n行每行为每个学生的名字和他的成绩,中间用单个空格隔开。名字只包含字母且长度不超过20成绩为一个不 大于100的非负整数。 输出 把成绩单按分数从高到低的顺序进行排序并输出每行包含名字和分数两项之间有一个空格。 输入样例 4 Kitty 80 Hanmeimei 90 Joey 92 Tim 28 输出样例 Joey 92 Hanmeimei 90 Kitty 80 Tim 28 #includeiostream
using namespace std;
#include stdio.h
#include string.h
struct node{char name[30];int score;
}stu[30],temp;
int main()
{int n;int i,j;cinn;for(i1;in;i)cinstu[i].namestu[i].score;for(i1;in;i)for(ji1;jn;j)if(stu[i].scorestu[j].score){tempstu[i];stu[i]stu[j];stu[j]temp;}else if(stu[i].scorestu[j].scorestrcmp(stu[i].name,stu[j].name)0){tempstu[i];stu[i]stu[j];stu[j]temp;}for(i1;in;i)coutstu[i].name stu[i].scoreendl;return 0;
}
7.计算两个日期之间的天数 计算两个日期间的天数并在用户输入时检查月份和日期是否有误有误时要求重新输入。 #includestdio.h
#includestdlib.h
int func1(int flag,int mon);
int func2(int mon, int day, int year);
int check(int in, int flag);
int main()
{system(color F0);int year1,year2,mon1,mon2,day1,day2,flag,i,p,n0,m0;void input(int *year,int *mon,int *day);void change(int* x, int* y);while (1){printf(请输入起始时间\n);input(year1, mon1, day1);printf(请输入结束时间\n);input(year2, mon2, day2);if ((year1 * 10000 mon1 * 100 day1) (year2 * 10000 mon2 * 100 day2)){change(year1, year2);change(mon1, mon2);change(day1, day2);}p year2 - year1;i p;while (p 2){p p - 1;flag year1 p;if ((flag % 4 0) ((flag % 400 0) || (flag % 100 ! 0))) {n;}else {m;}}year1 ((year1 % 4 0) ((year1 % 400 0) || (year1 % 100 ! 0))) ? 366 : 365;year2 ((year2 % 4 0) ((year2 % 400 0) || (year2 % 100 ! 0))) ? 366 : 365;flag func2(mon2, day2, year2) - func2(mon1, day1, year1);if (i 0)printf(日期相差%d天\n\n, flag);else if (i 1)printf(日期相差%d天\n\n, flag year1);elseprintf(日期相差%d天\n\n, flag year1 n * 366 m * 365);}return 0;
}
void input(int* year, int* mon, int* day)
{int flag;printf(年);scanf_s(%d, year);printf(月);scanf_s(%d, mon);*mon check(*mon,12);flag ((*year % 4 0) ((*year % 400 0) || (*year % 100 ! 0))) ? 1 : 0;flag func1(flag, *mon);printf(日);scanf_s(%d, day);*day check(*day, flag);
}
void change(int* x, int* y)
{int z;z *y;*y *x;*x z;
}
int func1(int flag,int mon)
{int a, b;a (mon 2) ? 1 : 0;b ((mon 1) || (mon 3) || (mon 5) || (mon 7) || (mon 8) || (mon 10) || (mon 12)) ? 1 : 0;switch (a * 4 b * 2 flag){case 0:case 1:return 30; break;case 2:case 3:return 31; break;case 4:return 28; break;case 5:return 29; break;}
}
int func2(int mon, int day, int year)
{int flag,num0;if (year 365){for (flag 1; flag mon; flag){num func1(0, flag) num;}}else{for (flag 1; flag mon; flag){num func1(1, flag) num;}}return num day;
}
int check(int in, int flag)
{if ((in flag) (in 1))return in;else{printf(输入有误请重新输入);scanf_s(%d, in);return check(in,flag);}
}