C++ OJ题数字统计 求解

题目描述

给出一个字符串S(S仅由’0’~’9’组成,且不包含空格,长度≤100),请将其各个数字按个数打印出,并且输出各个数字之和。

输入

第一个行整数N为测试数据组数。接下来N行为S。

输出

如果数字i(0≤i≤9)出现的次数大于0则输出i : Ai (Ai为i出现的次数),并在末尾输出S中各个数字的和,每组输出结束后空一行。(最后一组数据后无空行)。

样例输入

2

0012

13588

样例输出

0:2

1:1

2:1

3

1:1

3:1

5:1

8:2

25

c++

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
C++ OJ题数字统计 求解
题目描述 给出一个字符串S(S仅由’0’~’9’组成,且不包含空格,长度≤100),请将其各个数字按个数打印出,并且输出各个数字之和。 输入 第一个行整数N为测试数据组数。接下来N行为S。 输出 如果数字i(0≤i≤9)出现的次数大于0则输出i : Ai (Ai为i出现的次数),并在末尾输出S中各个数字的和,每组输出结束后空一行。(最后一组数据后无空行)。 样例输入 2 0012 13588 样例输出 0:2 1:1 2:1 3 1:1 3:1 5:1 8:2 25
C++OJ题 数字归类 求解
题目描述 一个数里面若含有数字1,则归类到1字类,含有数字2,则归类到2字类,所以一个数可能同时归类到不同的数字类。对于0、1、2、3、4、5、6、7、8、9这十个数字类,因研究需要,急于想知道某一堆数中,究竟归类到这些数字类的个数。 样例输入 123 456 175 2 61 9998 12 5053 382 样例输出 0: 1 1: 4 2: 4 3: 3 4: 1 5: 3 6: 2 7: 1 8: 2 9: 1 提示 注意:输出结果中冒号后面有空格
C++OJ题 矩阵重排 求解
题目描述 对n*n的方阵,进行重排,使得按之字形排序,比如n=3时,重排后得到: 1 3 4 2 5 8 6 7 9 又如当n=4时,重排后得到: 1 3 4 10 2 5 9 11 6 8 12 15 7 13 14 16 输入 输入一个整数n<20 输出 按之字形排序的方阵 每个数字占3个字符 样例输入 3 样例输出 1 3 4 2 5 8 6 7 9
C语言 oj 平台 runtime error 求解
题:原文网址:http://vjudge.net/problem/viewProblem.action?id=19398 输入:先输入一个数N,后每组2个(代表x,y)输入N组数。(1<=N<=50)(-100<=x,y<=100)输入0结束。 输出:A,B使得Ax+By!=0,且Ax+By>0的数目与Ax+By<0的数目相同(-500<=A,B<=500) 如: Sample Input 2 -20 20 -30 20 -10 -50 10 -5 0 Sample Output 0 1 我的代码: #include<stdio.h> #define MAXN 50+10 int main() { int x[MAXN],y[MAXN],n; do { scanf("%d",&n); if(n==0)break; int i,j,k; for(i=0;i<2*n;i++) scanf("%d%d",&x[i],&y[i]); for(i=-500;i<=500;i++) { for(j=-500;j<=500;j++) { int ca=0,cb=0,ok=1; for(k=0;k<2*n;k++) { if(x[k]*i+y[k]*j==0){ok=0;break;} else if(x[k]*i+y[k]*j>0)ca++; else cb++; } if(ok && ca==cb){printf("%d %d\n",i,j);goto lp;} } } lp:; }while(n); return 0; }
c++ oj 题目,求大神帮忙
19:字符串移位包含问题 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。 输入 一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过30。 输出 如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出true,否则输出false。 样例输入 AABCD CDAA 样例输出 true 我的代码: ``` #include<bits/stdc++.h> using namespace std; int main() { char c[1001],s[1001]; cin>>s; cin>>c; if(strlen(s)<strlen(c)) swap(s,c); strcat(s,s); if(strstr(s,c)==0) cout<<"false"; else cout<<"true"; return 0; } ``` 本地运行是对的,一上oj就出现了Runtime error 啥原因。。
C++OJ题找出所有三位素数
题目描述 一个n位超级素数是指一个n位正整数,它的前1位,前2位,......,前n位均为素数,例如,733是个3位超级素数,因为7,73,733均为素数。输出全部的3位数超级素数。 输入 输出 全部的3位数超级素数,每行一个数
请问这个代码为什么oj上tuntime error了呀,小白求解?
![图片说明](https://img-ask.csdn.net/upload/202002/11/1581411651_49287.png) #include <iostream> using namespace std; int a[101]={0}; int main() { int n,i,j; cin>>n; for(i=2;i<=n;i++) for(j=1;j<=n;j++) { if(a[j]==0) { if(j==i||j%i==0)a[j]=1; } else { if(j==i||j%i==0)a[j]=0; } } for(i=1;i<=n;i++) if(a[i])cout<<i<<" "; return 0; }
大数加减,VS上可以运行,oj上显示段错误,哪里出问题了?
#include <iostream> using namespace std; struct list { char num; list * next; }; void creat(list * & head) { list *s,*p; s=new list; s->next=NULL; cin.get(s->num); while(s->num!='\n') { if((s->num>='0'&&s->num<='9')||s->num=='-') { if(head==NULL) {head=s; head->next=NULL; p=s;} else if(head->num=='-') {if(p->num=='-') {p->next=s; p=s;} else {s->next=head->next; head->next=s;}} else if(head->num>='0'&&head->num<='9') {s->next=head; head=s;} } s=new list; s->next=NULL; cin.get(s->num); } delete s; return; } void add(list *h1,list *h2,list * & h3) { list *h; h=new list; h->next=NULL; int a,b,d,c=0; while(h1||h2) { if(h1&&h2) { a=(int)h1->num-48; b=(int)h2->num-48; d=a+b+c; c=0; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } if(h3==NULL) {h3=h; h3->next=NULL;} else {h->next=h3; h3=h;} h1=h1->next; h2=h2->next; h=new list; } else if(h1) { a=(int)h1->num-48; d=a+c; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } h->next=h3; h3=h; h1=h1->next; h=new list; } else if(h2) { a=(int)h2->num-48; d=a+c; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } h->next=h3; h3=h; h2=h2->next; h=new list; } } if(c) { h->num=c+48; h->next=h3; h3=h; h=new list; } } int count(list *head) { int f; list *g; g=head; for(f=0;g;f++) { g=g->next; } return f; } int compare(list *h1,list *h2) { int t,a,b,e,j; e=count(h1); j=count(h2); if(e>j) t=1; else if(e<j) t=0; else { while(h1||h2) { a=(int)h1->num-48; b=(int)h2->num-48; if(a>=b) t=1; else t=0; h1=h1->next; h2=h2->next; } } return t; } void Minus(list *h1,list *h2,list * & h3) { int a,b,c=0,d,t; list *h; h=new list; h->next=NULL; t=compare(h1,h2); if(t) { while(h1||h2) { if(h1&&h2) { a=(int)h1->num-48; b=(int)h2->num-48; if(a-c>=b) { d=a-c-b; h->num=d+48; c=0; } else { d=a-c+10-b; h->num=d+48; c=1; } if(h3==NULL) {h3=h; h3->next=NULL;} else {h->next=h3; h3=h;} h1=h1->next; h2=h2->next; h=new list; } else if(h1) { a=h1->num-48; if(a-c>=0) { d=a-c; h->num=d+48; c=0; } else { d=a-c+10; h->num=d+48; c=1; } h->num=d+48; h->next=h3; h3=h; h1=h1->next; h=new list; } } } else { Minus(h2,h1,h3); h->num='-'; h->next=h3; h3=h; } } void show(list *head) { int a,c,d=1,q=1; list *h; h=head; if(h->num=='-') { h=h->next; } while(q) { if(h->num!='0') q=0; else h=h->next; } a=count(h); c=a%3; while(h) { if(c) { cout<<h->num; h=h->next; c--; d=0; } else if(h&&d) { c=3; d=0; } else if(h) { cout<<','; c=3; } } cout<<endl; } int main() { int x,a,b,c,i; char y; cin>>x; for(i=0;i<x;i++) { a=1; b=1; c=0; cin>>y; cin.get(); list * h1=NULL; list * h2=NULL; list * h3=NULL; creat(h1); creat(h2); if(y=='+') { if(h1->num=='-') { a=0; h1=h1->next; } if(h2->num=='-') { b=0; h2=h2->next; } if(a&&b) add(h1,h2,h3); else if(a) Minus(h1,h2,h3); else if(b) Minus(h2,h1,h3); else { list *s; s=new list; s->num='-'; s->next=NULL; add(h1,h2,h3); s->next=h3; h3=s; } } else if(y=='-') { if(h1->num=='-') { a=0; h1=h1->next; } if(h2->num=='-') { b=0; h2=h2->next; } if(a&&b) Minus(h1,h2,h3); else if(a) add(h1,h2,h3); else if(b) { list *s; s=new list; s->num='-'; s->next=NULL; add(h1,h2,h3); s->next=h3; h3=s; } else Minus(h2,h1,h3); } if(h3->num=='-') { c=1; h3=h3->next; } if(c) cout<<'-'; show(h3); } }
[OJ题][TLE][C语言]关于整数数列的任意连续子数列快速遍历出现TLE的解决方案
使用C语言。 在做OJ题的时候,在一道题目上的被难住了,花了很多时间去优化算法,还是出现了TLE。 《下面是题目。》 ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575975710_910686.png) ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575975837_762326.png) 我最初对题目的理解: * 给定一个N长度(接近10^5)的整数数列,其连续子数列可以含有1~N个元素。 * Lenth值就是子数列的元素个数。 * Weight值就是子数列的Lenth × 最小元素。 我起初的解法是: * 用int N[100001]存储数列值,其中N[0]记录数列长度。 * AskWay 1 :对于每次询问AskValue,使用三个嵌套循环,外循环为子数列长度从AskValue递增到N[0],内循环为依次遍历整个数组,第二个内循环取子数列中间的最小值。将上述值依次暂存后,遇大的Weight就替换。得到目标结果。 * AskWay 2 :对于每次询问AskValue,子数列长度从1开始递增,当Weight值大于AskValue时离开循环。 其结果不可避免的TLE超时了。 。 第二次想到,对于每个数列的M次询问,我只需要把该数列的每个长度的子序列Weight最大值存下来,然后每次询问只需要进行一次二分查找即可。 于是我再建立了MaxWeigth数组和MinLenth数组。 结果还是TLE。 。 第三次打算对数列的处理进行优化,想到长子序列一定包含短子序列,对于所有长子序列的最小值必定包含在所有短子序列的最小值中。 而且,假定子数列长度为“n”,数列总长度为“N”,则长度为n的连续子数列个数为N-n+1。 长度为n的两个相邻连续子数列的总长度为n+1(包含重复数列), 则长度为n+1的长连续子数列必定包含两个相邻短连续子数列,其最小值在短数列的两个最小值中产生。 。 可以得到下图的结论。 ![图片说明](https://img-ask.csdn.net/upload/201912/10/1575978997_821620.png) 比较次数为:n(n-1)/2。复杂度降为n^2。 结果还是TLE超时。VS测出单次建立持续时间为3600ms,而题目可能会测试T=15次。最后把数组用指针地址递增读取,持续时间降到了1400ms,然而还是不行。 以下为所用代码。 (写代码的时候为了便于测试,输入的N组数据用了随机数的方式读取,输出函数给注释掉了) ``` #include<stdio.h> #include<stdlib.h> #define Min(x) (((*x)<(*(x+1)))?(*x):(*(x+1))) #define Wide 100001 int N[2][Wide] = { 0 }; int Len[Wide] = { 0 }; int MaxW[Wide] = { 0 }; int MinL[Wide] = { 0 }; void SubSequenceMax(void); int BinarySearch(int a[], int value, int n); int main() { int T, M; int i, j, k, l, Askway, AskValue, weight, lenth; //scanf_s("%d", &T); T = 1; for (i = 1; i <= T; i++) { //scanf_s("%d%d", &N[0][0], &M); N[0][0] = 80000; M = 40000; for (j = 1; j <= N[0][0]; j++) { //scanf_s("%d", &N[0][j]); N[0][j] = rand() % 100000; } ; SubSequenceMax(); ; MaxW[N[0][0]] = Len[N[0][0]]; MinL[1] = Len[1]; for (l = N[0][0] - 1; l >= 1; l--) { MaxW[l] = MaxW[l + 1] > Len[l] ? MaxW[l + 1] : Len[l]; MinL[N[0][0] + 1 - l] = Len[N[0][0] + 1 - l] < MinL[N[0][0] - l] ? MinL[N[0][0] - l] : Len[N[0][0] + 1 - l]; } for (k = 1; k <= M; k++) { //scanf_s("%d%d", &Askway, &AskValue); Askway = rand() % 2 + 1;//delete if (Askway == 1) { AskValue = rand() % (N[0][0] / 2) + N[0][0] / 4;//delete weight = MaxW[AskValue]; //printf("%d\n", weight); } else if (Askway == 2) { AskValue =Len[rand() % (N[0][0] / 2) + N[0][0] / 4];//delete if (AskValue > MinL[N[0][0]]);// printf("-1\n"); else if (AskValue <= MinL[1]);// printf("1\n"); else { lenth = BinarySearch(MinL, AskValue, N[0][0]); //printf("%d\n", lenth); } } } } } void SubSequenceMax(void) { int sublenth, record = 0, tempmax; int *pN,*ipN; int *rand; for (sublenth = 1; sublenth <= N[0][0]; sublenth++) { if (record == 0) { pN = N[1]; ipN = N[0]; rand = &N[1][(N[0][0] - sublenth)+1]; record = 1; pN++; ipN++; tempmax = N[0][1]; for (; pN <= rand; pN++, ipN++) { *pN = Min(ipN); tempmax = (((*ipN * sublenth) > (tempmax * sublenth)) ? *ipN : tempmax); } Len[sublenth] = tempmax * sublenth; } else { pN = N[0]; ipN = N[1]; record = 0; rand = &N[0][(N[0][0] - sublenth)+1]; pN++; ipN++; tempmax = N[1][1]; for (; pN <= rand; pN++,ipN++) { *pN = Min(ipN); tempmax = (((*ipN * sublenth) > (tempmax * sublenth)) ? *ipN : tempmax); } Len[sublenth] = tempmax * sublenth; } } } int BinarySearch(int a[], int value, int n) { int low, high, mid; low = 1; high = n; while (low <= high) { mid = (low + high) / 2; if (a[mid] >= value && a[mid-1]<value) return mid; if (a[mid] >= value) high = mid - 1; if (a[mid] < value) low = mid + 1; } return -1; } ```
c++ oj题不知道为什么答案老是不对真是太难受了
Input 本题有多组数据 每组数据的第一行有两个整数N, M  (1 <= N,M <= 1000) 分别代表申请的同学总数和算法总数 接下来的N行,每行第一个都是整数C(1 <= C <= 100) 代表这位同学精通C种算法,接着这一行会有C个整数,代表这位同学所精通的算法(算法用一个数字表示) Output 每组数据输出一行 首先输出一共需要招多少位同学 接着这一行输出所招同学的序号 如果某组数据有多种方案,任意给出一种可行解即可 如果不存在这样的方案,只要输出”NO” #include<iostream> using namespace std; bool func1(int *a,int *b) { for(int i=1;i<=a[0];i++) { for(int j=1;j<=b[0];j++) { if(a[i]==b[j]) return 0; } } return 1; } int main() { int m,n; cin>>n>>m; if(n<1||m<1) { cout<<"No"<<endl; return 0; } int **a=new int *[n]; int *q=new int[m]; int *cas=new int [n]; int c; for(int i=0;i<n;i++) { cin>>c; if(c<1) { a[i]=new int [1]; a[i][0]=m+1; continue; } a[i]=new int [c+1]; a[i][0]=c; for(int j=1;j<=c;j++) { cin>>a[i][j]; } } int r=0;cas[0]=0; for(int i=0;i<n;i++) { int sum=1;q[sum-1]=i+1; int t=m-a[i][0]; for(int j=i+1;j<n;j++) { if(a[j][0]<=t) { if(func1(a[i],a[j])) { t-=a[j][0]; sum+=1; q[sum-1]=j+1; continue; } } } if(t==0) { cas[r]=sum; for(int x=0;x<r||x==0;x++) { if(cas[x]==cas[r]&&r!=0) break; if(x==r-1||r==0) { cout<<cas[r]<<" "; for(int k=0;k<sum;k++) { cout<<q[k]<<" "; } cout<<endl; } }r++; } } if(cas[0]==0) cout<<"No."<<endl; for(int i=0;i<n;i++) delete [] a[i]; delete []a; delete [] q; delete [] cas; } 我的代码为什么老是wrong answer
C语言输出小数点后第n位数字
![图片说明](https://img-ask.csdn.net/upload/202002/13/1581606053_231502.png) 要求输出结果依次为2 4 6 我输出结果和这个题目要求一致,但是OJ提交却显示失败,求大佬帮助 #include <stdio.h> #include <stdlib.h> int main() {int t,n,i,m,j,k; char a[50]; scanf("%d",&t); while(t--){ scanf("%s%d",a,&n); m=0; m=(int)strlen(a); k=0; j=0; for(i=0;i<m;i++){ if(a[i]=='.'){ k=i+n; j=m-i-1; break; } } if(j>=n){ if(n>=1&&n<=6){ printf("%d\n",a[k]-'0'); } } } return 0; } ``` ```
为什么杭电oj2024ac不了,求解?
![图片说明](https://img-ask.csdn.net/upload/201912/09/1575898444_854029.png) 为什么我ac不了巡行结果都对了呀 ![图片说明](https://img-ask.csdn.net/upload/201912/11/1576061037_516822.png)这个就能ac,一脸懵逼 求解
在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?
在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?
一个OJ题,数字太大,计算机没法存储,如何解?
http://219.218.128.149/JudgeOnline/problem.php?id=1261 这是这道题的地址,3个区域,A,B,C 开始在A,跳到别的区域,不能原地跳,且最后一次跳只能跳回A,输入跳的次数n,问一共有多少种跳法,最后把跳法数%10000,我算法已经弄好,但是发现跳法数太多,计算机无法存储,最高到2^1000,怎么解决?
oj的一道很简单的题目,不知道错在哪了,请大牛指点!
19:字符串移位包含问题 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。 输入 一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过30。 输出 如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出true,否则输出false。 样例输入 AABCD CDAA 样例输出 true ``` #include<bits/stdc++.h> using namespace std; int main() { char s[30],c[30]; cin>>s>>c; if(strlen(c)==0) { cout<<"true"<<endl; return 0; } int l=strlen(s); for(int i=0;i<l;i++) { char h; h=s[0]; for(int j=0;j<l-1;j++) { s[j]=s[j+1]; } s[l-1]=h; if(strstr(s,c)) { cout<<"true"<<endl; return 0; } } cout<<"false"<<endl; return 0; } ``` 只过了9个点,改了一晚上,崩溃啊
为什么一道简单的oj题一直wa啊,我人傻了,哪个大佬帮瞅两眼呗。
题目如下 ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572964362_10495.png) 就是找数字,能被7除不能被4除,还要尽可能小。 我的代码: ``` #include<stdio.h> #include<stdlib.h> #include<iostream> //#pragma warning(disable:) using namespace std; int is(float m) { if (((int)m) == m) return 1; else return 0; } int lucky(float m) { if ((is(m / 7))==1 && (is(m / 4))==0) { return (int)m; } float p = ((int)(m / 7))+1.0f; while (is((p*7)/4)) { p++; } if (p > 14) { return (int)m; } return (int)p * 7; } int main() { int num =0, m = 1, intput[110] = { 0 },output[110] = {0}; cin >> num; intput[0] = num; while (num>=1) { cin >> intput[m]; output[m-1] = lucky(intput[m]); num--; m++; } num = m-1; m = 0; while (m < num) { cout << output[m] << endl; m++; } system("pause"); return 0; } ``` 输入和输出的方式改了又改,一直wa,很烦,谁能指点下啊,感谢感谢 ![图片说明](https://img-ask.csdn.net/upload/201911/05/1572964783_692874.png) 这是程序运行结果截图
C++OJ题目 文件名排序(结构体)
题目描述 假如你打开一个文件夹发现里面的文件顺序是混乱的. 通常你会让操作系统对文件进行排序,否则看起来实在太不舒服了. 但是这究竟是怎样一个过程呢? 输入 输入共n行(0<n<=10000) 每行包含数据Ni,Ai,用空格分隔 其中Ni为文件名(无空格),Ai为属性("File"代表文件,"Dir"代表文件夹) 输出 输出排序后的结果 样例输入 msvcrt40.dll File cliconfg.dll File drivers Dir rasman.dll File setver.exe File 样例输出 drivers Dir cliconfg.dll File msvcrt40.dll File rasman.dll File setver.exe File 提示 文件名比较时忽略大小写, 文件夹总是排在文件的前面.
请问一下这段代码提交到OJ平台为何报错RE?
纯小白,写代码不过几个月,不知道下面这段代码提交到OJ平台为何提示RE,有什么修改的措施吗? OJ平台的提示信息是:LinuxExecutorSeccomp.cpp(219): terminate signal: SIGSEGV 请问有什么办法补救吗?或者能否推荐一个好的编译平台以供自行检验错误呢?学校一直使用的是DEV-C++。 代码如下: ``` #include<stdio.h> #include<string.h> void compare(char a[],char b[]) { char t[1000]; memset(t,0,sizeof(t)); for(int i=0;i<1000;i++){ if(strcmp(a,b)<0){ strcpy(t,a); strcpy(a,b); strcpy(b,t); return; } } return; } int main(){ char a[1000][55],ch; int count[1000]={0}; int jj[1000]={0}; int n=0,m=0; memset(a,0,sizeof(a)); while((ch=getchar())!='\n'){ if(ch==' '){ m++; n=0; continue; } a[m][n++]=ch; } int i=0; for(i=0;i<=m;i++){ for(int j=0;j<=m-1;j++){ compare(a[j],a[j+1]); } } int e=1; for(i=0;i<=m;i++){ count[i]=1; for(int j=m;j>i;j--){ if(strcmp(a[i],a[j])==0){ count[i]++; } } } for(i=0;i<=m;i++){ for(int j=m;j>i;j--){ if(strcmp(a[i],a[j])==0){ jj[e++]=j; } } } int t=m+1; while(t>0){ t--; while(t>0&& a[t]==0)t--; int h=1; while(h<=e){ while(t>0&& t==jj[h]){ t--; h=0; } h++; } printf("%s %d\n",a[t],count[t]); } return 0; } ```
请教大佬oj题目 计算职工工资问题
oj上的题,为什么过不了? ``` #include<stdio.h> struct Employee{ char name[10]; float Basic,Variable,Expenditure,Payroll; }; void Sort(struct Employee *p,int n) { struct Employee a; int i,j; for(i=0;i<n;i++) for(j=i;j<n;j++) { if(p[i].Payroll>p[j].Payroll||(p[i].Payroll==p[j].Payroll&&p[i].Basic>p[j].Basic)||(p[i].Payroll==p[j].Payroll&&p[i].Basic==p[j].Basic&&p[i].Variable>p[j].Variable)) { a=p[i]; p[i]=p[j]; p[j]=a; } } } int main() { struct Employee emp[100]; int i,n,Cas=0; while(scanf("%d",&n)!=EOF) { Cas++; for(i=0;i<n;i++) { scanf("%s%f%f%f",emp[i].name,&emp[i].Basic,&emp[i].Variable,&emp[i].Expenditure); emp[i].Payroll=emp[i].Basic+emp[i].Variable-emp[i].Expenditure; } Sort(emp,n); printf("Case #%d:\n",Cas); for(i=0;i<n;i++) printf("%10s%10.2f\n",emp[i].name,emp[i].Payroll); } return 0; } ``` 题目:给定N个职员的信息,包括姓名、基本工资、浮动工资和支出,要求编写程序按照排序规则顺序输出每位职员的姓名和实发工资(实发工资=基本工资+浮动工资-支出)。 排序规则:按照实发工资从小到大排序,如果实发工资相同的则按照基本工资从小到大排序,如果实发工资和基本工资都相同,则按照浮动工资从小到大排序。 注意:main函数已经给定(如下所示)。 请将程序补充完整。 提交时只需要提交自己补充的代码部分,不需要提交给定的main函数的代码部分。
C++的一题OJ算法竞赛题,求解析(最好附上代码)
小明的密码由N(1<=N<=12)个数字构成,每个数字都可以是0至9中任意一个数字,但小明的密码还有 一个特点就是密码中连续的M(1<=M<=4)个数字的和是质数,现给定M和N,求满足条件的密码共有多少 个?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
Linux(服务器编程):15---两种高效的事件处理模式(reactor模式、proactor模式)
前言 同步I/O模型通常用于实现Reactor模式 异步I/O模型则用于实现Proactor模式 最后我们会使用同步I/O方式模拟出Proactor模式 一、Reactor模式 Reactor模式特点 它要求主线程(I/O处理单元)只负责监听文件描述符上是否有事件发生,有的话就立即将时间通知工作线程(逻辑单元)。除此之外,主线程不做任何其他实质性的工作 读写数据,接受新的连接,以及处...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
五年程序员记流水账式的自白。
不知觉已中码龄已突破五年,一路走来从起初铁憨憨到现在的十九线程序员,一路成长,虽然不能成为高工,但是也能挡下一面,从15年很火的android开始入坑,走过java、.Net、QT,目前仍处于android和.net交替开发中。 毕业到现在一共就职过两家公司,目前是第二家,公司算是半个创业公司,所以基本上都会身兼多职。比如不光要写代码,还要写软著、软著评测、线上线下客户对接需求收集...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
一文详尽系列之模型评估指标
点击上方“Datawhale”,选择“星标”公众号第一时间获取价值内容在机器学习领域通常会根据实际的业务场景拟定相应的不同的业务指标,针对不同机器学习问题如回归、分类、排...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
压测学习总结(1)——高并发性能指标:QPS、TPS、RT、吞吐量详解
一、QPS,每秒查询 QPS:Queries Per Second意思是“每秒查询率”,是一台服务器每秒能够相应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。互联网中,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 二、TPS,每秒事务 TPS:是TransactionsPerSecond的缩写,也就是事务数/秒。它是软件测试结果的测量单位。一个事务是指一...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
程序员该看的几部电影
1、骇客帝国(1999) 概念:在线/离线,递归,循环,矩阵等 剧情简介: 不久的将来,网络黑客尼奥对这个看似正常的现实世界产生了怀疑。 他结识了黑客崔妮蒂,并见到了黑客组织的首领墨菲斯。 墨菲斯告诉他,现实世界其实是由一个名叫“母体”的计算机人工智能系统控制,人们就像他们饲养的动物,没有自由和思想,而尼奥就是能够拯救人类的救世主。 可是,救赎之路从来都不会一帆风顺,到底哪里才是真实的世界?如何...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
还记得那个提速8倍的IDEA插件吗?VS Code版本也发布啦!!
去年,阿里云发布了本地 IDE 插件 Cloud Toolkit,仅 IntelliJ IDEA 一个平台,就有 15 万以上的开发者进行了下载,体验了一键部署带来的开发便利。时隔一年的今天,阿里云正式发布了 Visual Studio Code 版本,全面覆盖前端开发者,帮助前端实现一键打包部署,让开发提速 8 倍。 VSCode 版本的插件,目前能做到什么? 安装插件之后,开发者可以立即体验...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
2019年除夕夜的有感而发
天气:小雨(加小雪) 温度:3摄氏度 空气:严重污染(399) 风向:北风 风力:微风 现在是除夕夜晚上十点钟,再有两个小时就要新的一年了; 首先要说的是我没患病,至少现在是没有患病;但是心情确像患了病一样沉重; 现在这个时刻应该大部分家庭都在看春晚吧,或许一家人团团圆圆的坐在一起,或许因为某些特殊原因而不能团圆;但不管是身在何处,身处什么境地,我都想对每一个人说一句:新年快乐! 不知道csdn这...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
2020年的1月,我辞掉了我的第一份工作
其实,这篇文章,我应该早点写的,毕竟现在已经2月份了。不过一些其它原因,或者是我的惰性、还有一些迷茫的念头,让自己迟迟没有试着写一点东西,记录下,或者说是总结下自己前3年的工作上的经历、学习的过程。 我自己知道的,在写自己的博客方面,我的文笔很一般,非技术类的文章不想去写;另外我又是一个还比较热衷于技术的人,而平常复杂一点的东西,如果想写文章写的清楚点,是需要足够...
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
节后首个工作日,企业们集体开晨会让钉钉挂了
By 超神经场景描述:昨天 2 月 3 日,是大部分城市号召远程工作的第一天,全国有接近 2 亿人在家开始远程办公,钉钉上也有超过 1000 万家企业活跃起来。关键词:十一出行 人脸...
Java基础知识点梳理
虽然已经在实际工作中经常与java打交道,但是一直没系统地对java这门语言进行梳理和总结,掌握的知识也比较零散。恰好利用这段时间重新认识下java,并对一些常见的语法和知识点做个总结与回顾,一方面为了加深印象,方便后面查阅,一方面为了掌握好Android打下基础。
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问