-
PTA第六章指针 把输入数插入有n个数的升序整型数组a 中 从键盘输入10个整数存入一维数组,输出数组中最大值...
2020-05-13 15:14:131.本题目要求从键盘读入1个整数,把它插入到已有n个数的升序整型数组a 中。 输入格式: 输入要求: 在第1行输入已有有序数个数n; 在第2行依次升序输入n个整数,数据之间以空格间隔;(限定n<100); 在第3行输入要...指针如果玩不明白就可以不用指针,毕竟学的还不深,依赖程度不大,而且指针玩明白并不简单,有的题目用不熟悉的指针做可能会直接挂。。。。。。(但考基础的时候可能会考指针)很多时候不是不会指针,只是单纯的想偷懒
个人感觉这位兄弟写的关于指针的解释比较易懂、比较好,所以想分享一下,有需要的朋友可以去看一下
本文为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; }
-
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。 假设数组长度为10,数组中...
2020-03-07 21:10:10然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。 输入 第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。第二行输入一个整数。 输出 ...题目描述:
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。
输入
第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。第二行输入一个整数。
输出
从小到大输出这10个数,每个数一行。
样例输入
1 11 21 31 41 51 61 71 81
45样例输出
1
11
21
31
41
45
51
61
71
81提示
定义数组时,把数组长度定义为10.
#include<stdio.h> int main() { int a[10],i,x; for(i=0;i<=8;i++) scanf("%d",&a[i]); scanf("%d",&x); for(i=0;i<=9;i++) { if(x>a[8]) { a[9]=x;break;} if(x<=a[i]) { for(int n=1;n<=10-i;n++) {a[10-n]=a[9-n];} a[i]=x; break; } } for(i=0;i<=9;i++) printf("%d\n",a[i]); return 0; }
有进度类似的小伙伴可以加我一起学习!
-
问题 A: 习题6-4 有序插入 有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。...
2020-07-17 14:51:29然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。 输入 第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。 第二行输入一个整数 输出 从小到大输出...问题 A: 习题6-4 有序插入
题目链接
题目描述
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入到数组中。
假设数组长度为10,数组中前9个数(这9个数要求从键盘上输入,输入时要满足自小到大的输入顺序)已经按从小到大进行排序。
然后再从键盘上输入一个整数,将此整数插入到前有序的9个数中,使得最终的10个数依然是从小到大有序的。
输入
第一行输入以空格分隔的9个整数数,要求按从小到大的顺序输入。
第二行输入一个整数
输出
从小到大输出这10个数,每个数一行。
样例输入 Copy
1 11 21 31 41 51 61 71 81
45
样例输出 Copy
1
11
21
31
41
45
51
61
71
81#include<iostream> #include<cstdio> #include<cmath> using namespace std; int main() { int s[10]; int k; for(int i=0;i<9;i++) { scanf("%d ",&s[i]); } scanf("%d",&k); for(int i=8;i>=0;i--)//注意:是从i=8开始的 { if(s[i]>k)//当s[i]>k时,s[i]向后一位 { s[i+1]=s[i]; } else { s[i+1]=k; break; } } for(int j=0;j<10;j++) printf("%d\n",s[j]); return 0; }
-
有序读入数到数组中并查找数——数组标记法
2020-03-26 17:46:07从键盘读入10个数存放在数组中,要求由小到大输入(允许有相同的数)。 如果读入的数比前面的数小,则该数无效,继续读入后面的数据。 输入一个待查找的数,要求找出该数是数组中第几个(序号从1开始计算)。 如果待...从键盘读入10个数存放在数组中,要求由小到大输入(允许有相同的数)。
如果读入的数比前面的数小,则该数无效,继续读入后面的数据。
输入一个待查找的数,要求找出该数是数组中第几个(序号从1开始计算)。
如果待查找的数在数组中有多个,返回相同数中最后一个数的位置;
如果该数不在数组中,则输出“Not Find!”。
输入格式:
在一行读入存放到数组中的数,下一行读入要查找的数。
输出格式:
输出查找的数在数组中的位置(序号从1开始计算),没有找到则输出Not Find!
输入样例1:
从小到大输入,查找的数存在-10 5 9 10 20 40 80 90 100 110 80
输出样例1:
7
输入样例2:
有无效的数输入,查找的数存在-10 5 9 10 20 40 15 30 60 90 100 110 100
输出样例2:
9
输入样例3:
输入的数据有重复,查找的数存在1 2 2 2 3 4 5 6 8 8 8
输出样例3:
10
输入样例4:
从小到大输入,查找的数不存在-10 5 9 10 20 40 80 90 100 110 60
输出样例4:
Not Find!
通过代码:
#include<stdio.h> int main(void){ //数组map保存所有输入的数,如果该数有效,数组mark将对应的数标记为1 int map[50], mark[12], min, i, tot, sum; scanf("%d", &map[0]); min = map[0]; //手动给第一个min赋值,否则循环里第一个min是没有初值的 mark[0] = 1; //标记第一个数 tot = 1; //可用数的个数 sum = 1; //输入的总个数 while (tot < 10) { scanf("%d", &map[sum]); mark[sum] = 0; //将标记置为0,等待下一步if的修改 if (map[sum] >= min) { tot++; //读到可用数,可用数+1 min = map[sum]; //更新min,让下一个数可以比较 mark[sum] = 1; //标记做好=1 } sum++; //数组里多了一个数,所以要更新数组的下标 } //把所有有效的数据存入数组a中 int a[10], cnt = 0; for (i = 0; i < sum; i++){ if (mark[i] == 1) { a[cnt] = map[i]; cnt++; } } int find, sit = -1; //sit记录位置,如果相同则输出最后一个的位置 scanf("%d",&find); for(int i = 0;i <10; i++){ if(a[i] == find) sit = i + 1; } if(sit == -1) printf("Not Find!\n"); else printf("%d\n",sit); return 0; }
-
编写一个程序从键盘上输入10个数据保存到数组中,求出该10个数的最大、最小和平均值...
2017-11-23 16:21:00#include<stdio.h> #define n 10 int a[n]; int main() { int i,j,num; int max,min; double avg,sum=0; scanf("%d",&num); for(i=0;i<num;i++) { ... -
用数组求斐波那契数列前40项、从键盘输入10个数,求出其中的最大数并输、选择法排序数组、n个元素一维数组...
2020-06-17 17:21:49例题:从键盘输入10个数,求出其中的最大数并输出。3.选择法排序4.数组循环移位5.编程序从键盘输入一批0到9之间的整数,统计出其中每个整数的出现次数。 1.例题:斐波那契数列 斐波那契数列的变化规律是:前两项都是1... -
判断一个数是否是数组中的成员(用二分法查找) 已知数据a中共有10个已排序的整数(由小到大排列)。现在从...
2020-08-15 16:12:54提示: (提示:①设待查找的数为x,设三个位置变量l、m...首先明确一点,题目中的数据a是已知条件,不需要因考虑复用性然后进行数组的输入及排序。而后在判断的时候这里采用布尔值的形式。其次,提示内容就是二分法所表达的 -
已存入数组中的数据值已经按由小到大的顺序存放,现从键盘输入一个数据,把它插入到数组中,要求插入新...
2020-11-06 22:09:56已存入数组中的数据值已经按由小到大的顺序存放,现从键盘输入一个数据,把它插入到数组中,要求插入新数据以后,数组数据仍然保持有序。请编写一个程序实现上述功能。 提示: 1)定义整型数组并初始化。 2)从... -
从键盘输入每小时登录网络的用户数到一个有24个整型元素的数组中。编程以如下格式显示一个报告
2015-11-28 01:31:52从键盘输入每小时登录网络的用户数到一个有24个整型元素的数组中。编程以如下格式显示一个报告: 时间 登录人数 所占比例 0:00 – 1:00 1 0.3 1:00 – 2:00 2 0.7 … 10:00 - 11:00 27 9.0 ... -
从键盘上输入N个数保存到数组中,要求找出最小的数及其下标,然后把它和数组中最前面的元素兑换位置...
2017-11-23 16:48:00#include<stdio.h> #define n 10 int a[n]; int main() { int i,j=0,num; int min; int t; scanf("%d",&num); for(i=0;i<num;i++) { scanf("%d"... -
以前写的C语言的小程序(八)(供学习...在一个数组中插入一个数按从小到大排列 从键盘输入20个整数,输出和
2020-03-12 18:37:58供初学者练习和参考使用...1.用函数调用求一组数的平均数(用数组) #include <stdio.h> int average(int a[],int n) { int i,sum=0; float ave; for(i=0;i<n;i++) sum=sum+a[i]; ave=sum/n; printf... -
在c语言中,将一个数插入一个数组中,程序怎么写?
2018-12-08 10:17:16有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中 #include&lt;stdio.h&gt; void main() { int i,x,j; int a[6]={1,5,10,15,20}; scanf(&... -
实现抓娃娃游戏功能关键算法。Java使用数组、循环结构语句实现输入十个数字判断最大值,Java判断最大值。
2019-11-08 11:38:17② 从键盘输入 10 个整数,放置到数组 a 中; ③ 输出数组 a 中的最大值。 注意:使用数组、循环结构语句实现。 public class week02 { /** * 传递一个整形数组,获取数组中的最大值 ... -
C++实验5——数组分离
2016-05-09 23:51:54从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。 /* *文件名称:cy.cpp *作 者:杨鑫 *完成日期:2016年5月9日 *版 本 号:v1.0 *对任务的求解方法及描述部分: *输入描述:... -
C++实验5数组选择
2016-05-11 19:24:35* 对任务及求解方法的描述部分: 从键盘中输入10个数放在数组A中,将该数组中不重复的数放到数组B中, * 输入描述: 输入十个数; * 问题描述: 从键盘中输入10个数放在数组A中,将该数组中不重复的数放到数 -
实验五-数组
2017-05-11 23:45:18* 对任务及求解方法的描述部分:从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。 * 输入描述: 输入十个数放在数组A中 * 问题描述: 从键盘中输入10个数放在数 -
c++实验5-数组分离
2016-05-05 11:42:14一、问题及代码 /* * 文件名称:第5次上机实验 * 作 者:张一品 * 完成日期:2016 年 5 月 5 日 * 版 本 号:v1.0 ...* 问题描述:从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中 -
使用指针对10个数按从小到大排列,再输入,后,插入该数列中不改变排列规律。
2020-06-17 22:40:26问题:从键盘上输入任意10个数,将其按从小到大顺序排列;再输入一个数,将该数插入到数列中,不改变数列的排序规律。 要求: 用一维数组保存输入的数据,调用排序函数(函数参数用指针)进行排序;调用插入新数函数... -
c++实验五—项目1:数组分离
2016-05-05 09:36:44从键盘中输入10个数放在数组A中,将该数组中奇数放到数组B,偶数放到数组C中后分别输出。
-
java 接口继承抽象类_java 接口的继承与抽象类
-
FS4412开发板开发文档
-
链表的一些基本操作的实现
-
IT6300B-UM-CN-231551.pdf
-
用Go语言来写区块链(一)
-
深究字符编码的奥秘,与乱码说再见
-
夏泽网
-
实现 MySQL 读写分离的利器 mysql-proxy
-
用微服务spring cloud架构打造物联网云平台
-
鸿蒙系统Harmonyos源码架构分析-第1期第2课
-
物联网基础篇:快速玩转MQTT
-
python+Django学生信息管理系统web版本.zip
-
Unity RUST 逆向安全开发
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
数据结构任务调度2.cpp
-
vs顺序结构if语句
-
foreach语句.zip存储联系人及其查询号码
-
while语句.zip一到一百自然数之和
-
C++代码规范和Doxygen根据注释自动生成手册
-
Java中的List、Set、Map