02_对N个长度最长可达到1000的数进行排序、对给定的一个字符串,找出有重复的字符,并给出其位置、输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序
2013-09-24 11:43
2106 查看
1.题目描述:
对N个长度最长可达到1000的数进行排序。
输入:
输入第一行为一个整数N,(1<=N<=100)。
接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
每个数都是一个正数,并且保证不包含前缀零。
输出:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
样例输入:
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333
样例输出:
33333333
11111111111111111111111111111
2222222222222222222222222222222222
参考答案
2. 题目描述:
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12
输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
输入:
输入包括一个由字母和数字组成的字符串,其长度不超过100。
输出:
可能有多组测试数据,对于每组数据,
按照样例输出的格式将字符出现的位置标出。
样例输入:
abcaaAB12ab12
样例输出:
a:0,a:3,a:4,a:9
b:1,b:10
1:7,1:11
2:8,2:12
提示:
1、下标从0开始。
2、相同的字母在一行表示出其出现过的位置。
参考答案
3. 题目描述:
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
输入:
输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。
接下来的一行有N个整数。
输出:
可能有多组测试数据,对于每组数据,
第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。
第二行将排序的结果输出。
样例输入:
4
1 3 4 2
样例输出:
4
1 2 3
提示:
如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。
参考答案
对N个长度最长可达到1000的数进行排序。
输入:
输入第一行为一个整数N,(1<=N<=100)。
接下来的N行每行有一个数,数的长度范围为1<=len<=1000。
每个数都是一个正数,并且保证不包含前缀零。
输出:
可能有多组测试数据,对于每组数据,将给出的N个数从小到大进行排序,输出排序后的结果,每个数占一行。
样例输入:
3
11111111111111111111111111111
2222222222222222222222222222222222
33333333
样例输出:
33333333
11111111111111111111111111111
2222222222222222222222222222222222
参考答案
#include<stdio.h> #include<string.h> //对 n 个长度最长可达到1000的数进行排序 void sortnum(char num[100][1000], int n) { char temp[1000]; int k, i; //接收输入 for(k=0; k<n; k++) { scanf("%s", num[k]); } for(i=0; i<n; i++) { for(k=0; k<n-i-1; k++) { if(strlen(num[k]) > strlen(num[k+1])) { strcpy(temp, num[k]); strcpy(num[k], num[k+1]); strcpy(num[k+1], temp); } else if(strlen(num[k]) == strlen(num[k+1]) && strcmp(num[k], num[k+1])>0) { strcpy(temp, num[k]); strcpy(num[k], num[k+1]); strcpy(num[k+1], temp); } } } } //输出数据 void output(char num[100][1000], int n) { for(int k=0; k<n; k++) { printf("%s\n", num[k]); } } int main() { char num[100][1000]; int n; while(scanf("%d", &n) != EOF) { sortnum(num, n); output(num, n); } return 0; }
2. 题目描述:
对给定的一个字符串,找出有重复的字符,并给出其位置,如:abcaaAB12ab12
输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
输入:
输入包括一个由字母和数字组成的字符串,其长度不超过100。
输出:
可能有多组测试数据,对于每组数据,
按照样例输出的格式将字符出现的位置标出。
样例输入:
abcaaAB12ab12
样例输出:
a:0,a:3,a:4,a:9
b:1,b:10
1:7,1:11
2:8,2:12
提示:
1、下标从0开始。
2、相同的字母在一行表示出其出现过的位置。
参考答案
#include<stdio.h> #include<string.h> typedef struct ch_arr{ int index[101]; //记录相同字符出现的位置 int p; //记录相应字符出现的次数 int flag; //指示相应字符是否输出过 }ch_arr; int main() { ch_arr temp[130]; char str[101]; int k, t; while(scanf("%s", str) != EOF) { //初始化存储数组 for(k=0; k<130; k++) { temp[k].p = 0; temp[k].flag = 0; //flag 表示对应字符未输出过 } //接收用户输入的字符串 for(k=0; k<strlen(str); k++) { temp[str[k]].index[temp[str[k]].p] = k; temp[str[k]].p++; } //输出结果 for(k=0; k<strlen(str); k++) { if(temp[str[k]].p>1 && 0==temp[str[k]].flag) { for(t=0; t<temp[str[k]].p-1; t++) { printf("%c:%d,", str[k], temp[str[k]].index[t]); } printf("%c:%d\n", str[k], temp[str[k]].index[t]); temp[str[k]].flag = 1; } } } return 0; }
3. 题目描述:
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
输入:
输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。
接下来的一行有N个整数。
输出:
可能有多组测试数据,对于每组数据,
第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。
第二行将排序的结果输出。
样例输入:
4
1 3 4 2
样例输出:
4
1 2 3
提示:
如果数组中只有一个数,当第一行将其输出后,第二行请输出"-1"。
参考答案
#include<stdio.h> int main() { int i, k, arr[1000], n; while(scanf("%d", &n) != EOF) { for(i=0; i<n; i++) { scanf("%d", &arr[i]); } if(n>1) { for(i=0; i<n; i++) { for(k=0; k<n-i-1; k++) { if(arr[k]>arr[k+1]) { arr[k] = arr[k] + arr[k+1]; arr[k+1] = arr[k] - arr[k+1]; arr[k] = arr[k] - arr[k+1]; } } } printf("%d\n", arr[n-1]); for(i=0; i<n-2; i++) { printf("%d ", arr[i]); } printf("%d\n", arr[n-2]); } else { printf("%d\n", arr[0]); printf("-1\n"); } } return 0; }
相关文章推荐
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 输入一行字符串,找出其中重复出现且最长的字符串,输出它及其首字符的位置
- 给定一个字符串s,找出s中最长的回文子串,你可以假设s的最大长度是1000。
- 输入一行子串,找出其中出现的相同且长度最长的字符串,输出它及其首字符的位置
- 05年华中科大机试第一题(对给定的一个字符串,找出有重复的字符,并给出其位置)
- 输入一行字符串,找出其中重复出现且最长的字符串,输出它及其首字符的位置
- 程序员面试金典: 9.11 排序与查找 11.5有个排序后的字符串数组,其中散布这一些空字符串,编写一个方法,找出给定字符串的位置
- 输入一行字符串,找出其中出现的相同且长度最长的字符串,输出他及其首字符串位置
- 转:从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的的字符。
- 给定一个字符串,找到最长的子串的长度没有重复字符
- 给定一个字符串,返回字符串中没有重复字符的最长子串的长度
- 对于给定的一个字符串,统计其中数字字符出现的次数。输入数据有多行,第一行是一个整数n,表示测试实例的个数,后面跟着n行,每行包括一个由字母和数字组成的字符串。
- 华为机试题:输入两个超长整型构成的字符串,其间使用一个空格分隔,每个字符串最大长度为100个字符。求第一个整数除以第二个整数以后的余数。。
- 求给定的某一个字符串中的最长的没有重复字符的子串的长度
- 从键盘接收一个字符串, 程序对其中所有字符进行排序,例如键盘输入: helloitcast程序打印:acehillostt
- 给出一个字符串,找出其中只出现一次且位置最靠前的那个字符
- 11.5 排序后的字符串数组,其中散布着空字符串,编写一个方法,找出给定字符串的位置。
- 从键盘输入一个字符串,按照字符顺序从小到大进行排序,并要求删除重复的的字符。
- 【Java】有个排序后的字符串数组,其中散布着一些空字符串,编写一个方法,找出给定字符串的位置
- 从字符串中找出一个最长的不含重复字符的子字符串