-
PTA第六章指针 把输入数插入有n个数的升序整型数组a 中 从键盘输入10个整数存入一维数组,输出数组中最大值...
2020-05-13 15:14:13(但考基础的时候可能会考指针)很多时候不是不会指针,只是单纯的想偷懒 1.本题目要求从键盘读入1个整数,把它插入到已有n个数的升序整型数组a 中。 输入格式: 输入要求: 在第1行输入已有有序数个数n; 在第2行...指针如果玩不明白就可以不用指针,毕竟学的还不深,依赖程度不大,而且指针玩明白并不简单,有的题目用不熟悉的指针做可能会直接挂。。。。。。(但考基础的时候可能会考指针)很多时候不是不会指针,只是单纯的想偷懒
个人感觉这位兄弟写的关于指针的解释比较易懂、比较好,所以想分享一下,有需要的朋友可以去看一下
本文为CSDN博主「挠头狒狒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:点击这里跳转
或者手动后面的网址:https://blog.csdn.net/qq_45830608/article/details/1059153741.本题目要求从键盘读入1个整数,把它插入到已有n个数的升序整型数组a 中。
输入格式:
输入要求:
在第1行输入已有有序数个数n;
在第2行依次升序输入n个整数,数据之间以空格间隔;(限定n<100);
在第3行输入要插入新数w;
输出格式:
输出要求: 升序输出已经插入新数的数组元素中间以空格间隔#include <stdio.h> int main() { int n,m,i,j,t; scanf("%d",&n); int a[n+1]; for(i=0;i<n;i++) { scanf("%d",&a[i]); } scanf("%d",&m); a[n]=m; //将m赋值给数组空余的a[n] for(i=0;i<=n;i++) //排序阶段了,外层循环 { for(j=0;j<n-i;j++) { if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; } } } for(i=0;i<=n;i++) { printf("%d ",a[i]); } return 0; }
2.本题目要求: 从键盘输入10个整数存入一维数组a中,输出数组中最大值元素。
输入格式:
输入要求:输入10个整数
输出格式:
输出要求:输出最大元素#include <stdio.h> int main() { int a[10],i,*p,max; p=a; for(i=0;i<10;i++) { scanf("%d",p+i); if(i==0) max=*(p+i); else if(*(p+i)>max) max=*(p+i); } printf("%d",max); return 0; }
3.本题目要求: 从键盘输入10个正整数存入一维数组a中,统计数组元素中偶数个数
输入格式:
输入要求: 输入10个数,数据之间用空格间隔。
输出格式:
输出偶数个数#include <stdio.h> int main() { int a[10],i,*p,n=0; p=a; for(i=0;i<10;i++) { scanf("%d",p+i); if(*(p+i)%2==0) n++; } printf("%d",n); return 0; }
4.本题目要求: 从键盘输入n个整数存入一维数组a中,逆序输出输入的数组元素。限制 :数组长度小于100。
输入格式:
输入要求
在第1行输入要存入数组a的元素个数n;
在第2行依次输入n个整数,数据之间以空格间隔;
输出格式:
输出要求:输出数据之间以空格间隔;#include <stdio.h> int main() { int i,*p,n; scanf("%d",&n); int a[n]; p=a; for(i=0;i<n;i++) scanf("%d",p+i); for(i=0;i<n;i++) printf("%d ",a[n-1-i]); return 0; }
5.如果一个数正着读和逆着读都一样,这样的数就是回文数。
输入一个五位数,判断是否是“回文数”。
如果符合要求就输出判断“是”,如果不符合要求就输出判断“不是”。
输入格式:
输入一个五位数
输出格式:
输出判断结果:如果符合要求就输出判断“是”,如果不符合要求就输出判断“不是”。
第一个就是单独取各个数,然后比较位数(因为这是指定的五位数,所以…算是钻空子,,,,,,)
这个题目用数组真的是自己给自己添麻烦
第二个就是逆序数出这个数,然后将这个数与原数进行比较,用的无限循环while(1)。用break;跳出的#include <stdio.h> int main() { int x,a,b,c,d,e; scanf("%d",&x); a=x/10000; b=x/1000%10; c=x/100%10; d=x/10%10; e=x%10; if(a==e&&b==d) { printf("是"); } else { printf("不是"); } return 0; }
#include<stdio.h> int main() { int num,sum,t,zero; sum=0; scanf("%d",&num); zero=num; while(1) { t=num%10; sum=sum*10+t; num=num/10; if(num==0) break; } if(zero==sum) printf("是"); else printf("不是"); return 0; }
6.题目要求: 输入一个m行n列矩阵,输出矩阵中每行最大值。
输入格式:
输入格式:
在第1行输入矩阵m行n列,数据以空格隔开;
从在第2行开始连续输入m行,每行输入n个整数,数据以空格隔开;
输出格式:
输出格式:
输出m个数,分别是每行最大数,每个数值后跟一个空格。
做法不唯一的,我是新建一个数组,然后将每行进行比较,最大的那个数就放到这个新数组中,最后直接输出这个新数组。#include <stdio.h> int main() { int m,n; scanf("%d%d",&m,&n); int a[m][n]; int i,j; int max[m],t; for (i=0;i<m;i++) for (j=0;j<n;j++) scanf("%d",&a[i][j]); for (i=0;i<m;i++) { max[i]=a[i][0]; for (j=0;j<n;j++) if(a[i][j]>=max[i]) max[i]=a[i][j]; } for(i=0;i<m;i++) printf("%d ",max[i]); return 0; }
-
7-4-1 set 集合的“交”与“并” (300分)(详细解析)(有时候会运行超时,需要反复提交)
2021-01-31 17:27:06给出两个由数字组成的集合,请求这两个集合的“交...第一行首先输出两个数列交的集合中元素个数,如果元素个数大于0,则紧接着在这行输出“交集”的元素,按数值大小升序排列(本行输出多个数据时,用空格隔开,如果只给出两个由数字组成的集合,请求这两个集合的“交”和“并”。
输入格式:给一个n,m 代表两个数列的大小 (0 <= n,m <=2e5)
如果n>0,则接下来一行, n个数空格隔开,代表第一个集合中的数。
如果m>0,则接下来一行, m个数空格隔开,代表第二个集合中的数。
-1e9<=ai,bi<=1e9
输出格式:第一行首先输出两个数列交的集合中元素个数,如果元素个数大于0,则紧接着在这行输出“交集”的元素,按数值大小升序排列(本行输出多个数据时,用空格隔开,如果只有一个元素个数,行末无空格)
第二行首先输出两个数列并的集合中元素个数,如果元素个数大于0,则紧接着在这行输出“并集”的元素,按数值大小升序排列(本行输出多个数据时,用空格隔开,如果只有一个元素个数,行末无空格)
输入样例1:1 3 1 1 3 4
输出样例1:
1 1 3 1 3 4
输入样例2:
1 3 1 2 3 4
输出样例2:
0 4 1 2 3 4
此题为非常经典的交并集的问题,建议第一次没做出来的反复做几次,需要熟练掌握。
首先定义四个集合,前两个为输入的,一个是交集,一个是并集;
需要了解的是set中插入、查找等知识;
需要注意的是,set是没有重复元素的,而且会自动从小到大进行排序(这个题就要求从小到大输出,这样直接从头输出到尾就行,不用重新排序)
find找到的结果是!=end();
具体解析看代码注释:
有时候会运行超时,需要反复提交#include <iostream> #include <string> #include<algorithm> #include<bits/stdc++.h> #include<stack> #include<set> #include <vector> #include <map> #include<queue> using namespace std; int main() { int n,m; cin>>n>>m; set<int >s1; set<int >s2,jiao,bing; for(int i=0;i<n;i++){ int x; cin>>x; s1.insert(x);//输入第一个集合 } for(int i=0;i<m;i++){ int x; cin>>x; s2.insert(x);//输入第二个集合 } for(auto it=s1.begin();it!=s1.end();it++){//it是指针变量,从s1的开头到结尾 if(s2.find(*it)!=s2.end()){//如果在s2中找到对应的元素 jiao.insert(*it);//将该元素存入集合jiao中 } } for(auto it=s1.begin();it!=s1.end();it++){ bing.insert(*it);//这两步是将s1 s2的元素全都存入一个集合中,由于集合自动清除相同元素,所以直接可以得到并集,且是从小到大排序的 } for(auto it=s2.begin();it!=s2.end();it++){ bing.insert(*it); } if(jiao.size()>0){ cout<<jiao.size()<<" "; int len=0; for(auto it=jiao.begin();it!=jiao.end();it++){ if(!len){//len控制空格输出,注意不能有多余空格 cout<<*it; len++; } else{ cout<<" "<<*it; } } cout<<endl; } else{ cout<<"0"<<endl; } if(bing.size()>0){ cout<<bing.size()<<" "; int len=0; for(auto it=bing.begin();it!=bing.end();it++){ if(!len){ cout<<*it; len++; } else{ cout<<" "<<*it; } } } else{ cout<<"0"<<endl; } return 0; }
如果觉得对你有帮助,麻烦给点个赞!
-
7-6 删除序列的最大和最小值 (10分)
2020-12-21 00:11:42学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。 输入格式: 先输入数组的长度,然后再输入每个数组元素的值。 输出格式: 去除...学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。
输入格式:
先输入数组的长度,然后再输入每个数组元素的值。
输出格式:
去除两端极值后的剩余元素,升序排列,之间使用空格分开。(最后一个数字后面没有空格)
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner input =new Scanner(System.in); int N=input.nextInt(); int a[]=new int [N]; for(int i=0;i<N;i++){ //输入 a[i]=input.nextInt(); } for(int i=0;i<N;i++){ //排序 int k=i; int t=0; for(int j=i+1;j<N;j++){ if(a[j]<a[k]){ k=j; } } if(k!=i){ t=a[i]; a[i]=a[k]; a[k]=t; } } System.out.print(a[1]); //输出 for(int i=2;i<N-1;i++){ System.out.print(" "+a[i]); } } }
-
java删除序列的最大值最小值,7-9 删除序列的最大和最小值 (10 分)
2021-04-07 08:08:15学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。输入格式:先输入数组的长度,然后再输入每个数组元素的值。输出格式:去除两端...学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。
输入格式:
先输入数组的长度,然后再输入每个数组元素的值。
输出格式:
去除两端极值后的剩余元素,升序排列,之间使用空格分开。(最后一个数字后面没有空格)
输入样例:
在这里给出一组输入。例如:
11
10 3 2 -1 5 3 4 3 0 3 2
输出样例:
在这里给出相应的输出。例如:
0 2 2 3 3 3 3 4 5
解答
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in= new Scanner (System.in);
int N = in.nextInt();
int num[] = new int[N];
int numnew[] = new int[N -2];
for (int i = 0; i < N; i++) {
num[i] = in.nextInt();
}
for (int i = 0; i < N - 1; i++) {
for (int j = i + 1; j < N; j++) {
if (num[i] > num[j]) {
int tmp = num[i];
num[i] = num[j];
num[j] = tmp;
}
}
}
for (int i = 0; i < N - 3; i++) {
numnew[i] = num[i + 1];
System.out.print(numnew[i]+" ");
}
System.out.println(num[N - 2]);
in.close();
}
}
标签:10,++,numnew,System,int,最小值,num,序列,new
来源: https://blog.csdn.net/weixin_44547670/article/details/102760358
-
7-16 删除序列的最大和最小值 (10分) java pta
2020-10-30 23:25:57学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。 输入格式: 先输入数组的长度,然后再输入每个数组元素的值。 输出格式: 去除... -
7-5 删除序列的最大和最小值问题-hebust (10分)
2020-11-27 11:38:59学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。 输入格式: 一行字符串,数字均为整数,之间使用空格分开(元素个数>=3)... -
从小到大依次输出n的所有因子(极速算法)
2018-12-29 12:32:23我在刷题的时候遇见一个求因子的题目,时间限制为8s(问题描述如下),我在超时好几次后思考了很久.(换个思路就可以了) 查看 提交 统计 提问 总时间限制: 8000ms 内存限制: 65536kB 描述 输入1个... -
求并行计算任务之间的计算顺序
2020-06-18 21:45:18某IT系统存在并行计算场景,其独特之处在于计算任务之间存储依赖关系,如图1:有3个Task,Task1,Task2,Task3,表示Task2依赖Task1,Task3依赖Task1,这时候要求计算的顺序是Task1->Task2->Task3. 其中Task2和Task3无... -
SQL语句拾零
2010-06-25 08:54:59(一)SQL语句---null用法 null 值是一个特别的值...二空值的排序,升序排序时候,就是默认的方式。null值排在最后。 三用nvl 函数处理空值。 例如sal+nvl(comm,0) 这样就把一空值转化成某一实际值。 四分组... -
基于命令行的简单数据库系统
2012-11-25 15:29:52当数据量比较大的时候,请大家建立索引,并通过索引加快查询速度(选作) 要求: 1、 不能使用Cstring.h,string等类,只能使用char* 来处理字符串 2、 能够动态的申请和分配内存 上交的内容: 1、.cpp、.h、.... -
【Linux】Linux常用命令——sort命令
2020-06-06 11:05:29在排序的时候以指定分隔符对文本文件进行内容分列。对指定列进行升序或降序排列,并且在排序的同时可以指定是否忽略大小写。 2.基本选项 -d:按字典序升序排列,空行在前(默认); -b:忽略每行前面开始的空格... -
1044 Shopping in Mars (25分)[二分][模拟]
2020-06-03 21:12:26题干 ...给你一串钻石链上面是他们的价值代码,和一个价格,你需要...保证钻石的总价值对于支付是充足的,如果能准确支付,打印i-j角标,多个的时候按i升序.不能准确支付打印使超出最小的i-j也是按i升序. 题解 第一次 思路 预 -
华为机试题之合并表记录
2021-02-28 12:02:33合并表记录1>题目描述2>解法 1>题目描述 题目描述: 数据表记录包含表索引和数值(int范围的正整数),请...key要升序且唯一,value对应相同的key时候值要合并,很明显使用TreeMap合适。 import java.uti -
【UVA】 Andy's First Dictionary(模拟)
2018-07-21 20:43:19题目链接 题意很简单,就是把一篇文章中的所有单词不重复的按字典序升序输出。 这道题卡了一下午,就是有一个小的bug,他给的数据中...banana这种情况的时候,就会处理成一个applebanana,显然这样是不对的。 WA... -
51Nod 1954 交叉排序 c/c++题解
2019-09-27 19:39:50题目描述 给出一个序列,这个序列中每一个元素要么是一个英文单词,要么是一个整数。除了最后一个元素,每一个元素后面...单词比较的时候忽略大小写。 输入 单组测试数据。 输入若干个元素,对于单词,非空且长度不... -
浅梦汝
2021-01-13 18:12:17学者在进行数据统计的时候,为了避免极值的影响,通常会忽略掉最大值和最小值,然后对剩余元素进行统计,请编写程序完成去除极值的工作。 输入格式: 一行字符串,数字均为整数,之间使用空格分开(元素个数>=3)... -
mysql union 同一个检索内容_MySQL应知应会学习笔记
2021-01-27 18:57:33SQL语句不区分大小写在处理SQL语句的时候,空格是忽略的。LIMIT限制结果 只会输出若干条,例如:SELECT 列名 FROM 表 LIMIT 5;返回不多于5行,有助于性能提升。LIMIT 5,5; 返回从行5开始的5行,新版本的LIMIT 5 ... -
mysql insert into from_MySQL应知应会学习笔记
2020-11-24 03:14:55SQL语句不区分大小写在处理SQL语句的时候,空格是忽略的。LIMIT限制结果 只会输出若干条,例如:SELECT 列名 FROM 表 LIMIT 5;返回不多于5行,有助于性能提升。LIMIT 5,5; 返回从行5开始的5行,新版本的LIMIT 5 ... -
51nod 1954 交叉排序
2020-07-30 15:22:45单词比较的时候忽略大小写。 输入 单组测试数据。 输入若干个元素,对于单词,非空且长度不超过10,只由大小写字母组成;对于整数,绝对值<=1000000。元素个数不超过10000,序列中至少有一个元素 -
关于一个简单课程表的逻辑问题
2017-04-02 09:49:48在进行第一个Add()的时候测试了一下。比如说我输入 Add 发送到,发送到,士大夫,士大夫房贷首付 (为了测试就胡乱输入的) 那么控制台救会一直不停地输出“”“已添加到文件中。我认为为什么不是应该只是输入一个吗... -
51nod 牛奶 bfs深度优先搜索
2019-09-04 09:55:02农民约翰有三个容量分别是 A,B,C 升的桶,A,B,C 分别是三...找出当 A 桶是空的时候,C 桶中牛奶所剩量的所有可能性。 输入 输入一行三个数 A、B 和 C。 输出 输出一行数,数之间用空格隔开,升序地列出当... -
51Nod 2069 牛奶 c/c++题解
2019-08-15 10:48:29题目描述 农民约翰有三个容量分别是 A,B,C 升的桶,A,B,C 分别...找出当 A 桶是空的时候,C 桶中牛奶所剩量的所有可能性。 输入 输入一行三个数 A、B 和 C。 输出 输出一行数,数之间用空格隔开,升序地列出当... -
sort,uniq,netstat以及top
2020-05-20 15:15:48-u:去重,注意,不一定是整行不同才去重,而是按指定的key去重的,也就是依照-k命令去重,-k不指定的时候,key默认为整行,-k指定多个的时候,则多个key都不同才认为不同 -k num1 [,num2]:指定排序的列,比如一行5列... -
Quartus_II使用教程
2012-11-26 23:20:43在输入工程name的时候,点选use existing project settings,选择指定的工程settings或 者上一次的工程settings,然后直接点选finish,省去了每一次新建工程都需要选择器件。 图3 建立完工程后,假使我们... -
c语言,链表,指针。求大佬指点!谢谢大家了!
2019-12-17 09:14:132.第一行,a、b两个链表元素的数量N、M,用空格隔开。 接下来N行是a的数据 然后M行是b的数据 每行数据由学号和成绩两部分组成 3.按照学号升序排列的数据 我的代码:#include #include struct x { int xue... -
2009达内SQL学习笔记
2010-02-10 19:46:58当从多张表里查询的时候,会产生笛卡尔积;可用条件过滤它。 当两个表有相同字段时必须加前缀,列名前需加表名和“.”,如“s_emp.id”。 1、用法:SELECT columns,prod2,prod3<列> FROM Table1,table2<表名> ... -
MySql基本查询、连接查询、子查询、正则表达查询讲解
2017-08-24 18:38:30ASC:表示按升序的顺序进行排序。即表示值按照从小到大的顺序排列。这是默认参数。 DESC:表示按降序的顺序进行排序。即表示值按照从大到小的顺序排列。 如果有WHERE子句,就按照“条件表达式1”指定的条件进行查询... -
-
oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串
2017-05-06 20:26:52二进制数据类型 row 1~2000字节 可变长二进制数据,在具体定义字段的时候必须指明最大长度n long raw 1~2GB 可变长二进制数据 LOB数据类型 clob 1~4GB 只能存储字符数据 nclob 1~4GB 保存本地语言字符集数据 blob... -
SQL 基础--SELECT 查询
2013-09-11 11:21:02当你运行多个SQL 语句的时候,需要分号 在SQL*Plus中, 你要用一个分号结束每个SQL 语句.(;) 三、SQL*PLUS特征: 字符日期左对齐 数字右对对齐 列名默认大写 SQL PLUS 自己的命令不需以分号“;”结束 四、...