求一批整数中出现包含子串最多的字符串个位数字

中国石油大学C语言上机题答案(2015版)答案_最全最详细-五星文库
免费文档下载
中国石油大学C语言上机题答案(2015版)答案_最全最详细
导读:对数组a[10]中的十个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组a中元素的顺序,且相同的整数要具有相同的编号。例如数组是:A=(5,3,4,7,3,5,6,8,9,10)则输出为:(4,1,3,7,1,4,6,8,9,10)#include&stdio.h&intmain(){inti,j,t;inta[10],b[10];
对数组 a[10] 中的十个整数从小到大进行连续编号,输出各个元素的编号。要求不能改变数组 a 中元素的顺序,且相同的整数要具有相同的编号。例如数组是: A=(5,3,4,7,3,5,6,8,9,10) 则输出为: (4,1,3,7,1,4,6,8,9,10)
#include &stdio.h&
int main()
int i,j,t;int a[10],b[10];
for(i=0;i&10;i++)
scanf(&%d&,&a[i]);
b[i]=a[i];
for(i=0;i&10;i++)
for(j=1;j&10-i;j++)
if(b[j]&b[j-1])
b[j-1]=b[j];
for(i=0;i&10;i++)
for(j=0;j&10;j++)
if(a[i]==b[j])
printf(&%3d&,j+1);
printf(&\n&);
6.13 矩阵加法
方阵阶数为n(n&100),例如当n=3时,矩阵int a[3][3],矩阵int b[3][3]。 矩阵的数据由用户输入。输出新的矩阵c=a+b。 输出格式: c00 c01 c02 c10 c11 c12 c20 c21 c22 每两个数字之间有1个空格
a00 a01 a02
a10 a11 a12
a20 a21 a22
b00 b01 b02
b10 b11 b12
b20 b21 b22
c00 c01 c02
c10 c11 c12
c20 c21 c22
注意:输出时每行最后不能有空格
#include &stdio.h&
int main()
int i,j,n;int a[100][100],b[100][100],c[100][100];
scanf(&%d&,&n);
for(i=0;i&n;i++)
for(j=0;j&n;j++)
scanf(&%d&,&a[i][j]);
for(i=n;i&n+n;i++)
for(j=0;j&n;j++)
scanf(&%d&,&b[i-n][j]);
for(i=0;i&n;i++)
for(j=0;j&n;j++)
c[i][j]=b[i][j]+a[i][j];
for(i=0;i&n;i++)
for(j=0;j&n-1;j++)
printf(&%d &,c[i][j]);
printf(&%d\n&,c[i][n-1]);
6.14 矩阵转置
在数学上,矩阵是指纵横排列的二维数据表格,最早来自于方程组的系数及常数所构成的方阵。这一概念由19世纪英国数学家凯利首先提出。矩阵概念在生产实践中也有许多应用,比如矩阵图法以及保护个人帐号的矩阵卡系统(由深圳网域提出)等等。“矩阵”的本意也常被应用,比如监控系统中负责对前端视频源与控制线切换控制的模拟设备也叫矩阵。
设A为n×n阶矩阵(即n行n列),第i 行j 列的元素是a(i,j),即:A=a(i,j) 定义A的转置为这样一个n×n阶矩阵B,满足B=a(j,i),即 b (i,j)=a (j,i)(B的第i行第j列元素是A的第j行第i列元素),记A'=B。(有些书记为AT=B,这里T为A的上标)
直观来看,将A的所有元素绕着一条从第1行第1列元素出发的右下方45度的射线作镜面反转,即得到A的转置。
有n+1行(2 ≤n≤10),第一行是一个整数n,代表矩阵为n行n列。后面n行表示矩阵的取值
转置后的矩阵
#include &stdio.h&
int main()
int i,j,n;int a[100][100],b[100][100];
scanf(&%d&,&n);
for(i=0;i&n;i++)
for(j=0;j&n;j++)
scanf(&%d&,&a[i][j]);
for(i=0;i&n;i++)
for(j=0;j&n;j++)
b[j][i]=a[i][j];
for(i=0;i&n;i++)
for(j=0;j&n-1;j++)
printf(&%d &,b[i][j]);
printf(&%d\n&,b[i][n-1]);
6.15求一系列整数中出现最多的数字
给定一系列整数,对每个整数的每一位数字统计0~9各个数字的出现次数,求出现次数最多的数字。
有两行,第一行是整数n(1&=n&=100),表示有n个整数;第二行是n个整数值 输出:
出现次数最多的数字d(如果d不唯一,要列出全部)及其出现的次数
输入样例:
输出样例:
出现次数最多2次的数字是
#include &stdio.h&
int main()
int i,n,int a[100],b[10]={0};
scanf(&%d&,&n);
for(i=0;i&n;i++)
scanf(&%d&,&a[i]);
while(a[i]&0)
b[a[i]%10]++;
a[i]=a[i]/10;
for(i=1;i&10;i++)
if(max&b[i])
printf(&出现次数最多%d次的数字是&,max);
for(i=0;i&10;i++)
if(max==b[i])
printf(& %d&,i);
printf(&\n&);
6.16 装箱问题
假设有n项物品,大小分别为s1,s2,...,sn,其中si是整数且满足:1&=si&=100。要把这些物品装入到容量为100的一批箱子(序号1~n)中。装箱方法是:对每项物品si,依次扫描所有这些箱子,把si放入足以能够容下它的第一个箱子中(first-fit策略)。写一个程序来模拟这个装箱的过程。
有两行。第一行是整数n(n&=1000),表示物品的个数;第二行是n个整数si(si&=100),分别表示n个物品的大小
每个物品所在的箱子序号,并输出所需的箱子数目
输入样例:
60 70 80 90 30 40 10 20
输出样例:
所需的箱子数目为5
#include&stdio.h&
int main()
{int u,s[1000]={0},b[1000]={0},i=0,j;
包含总结汇报、专业文献、党团工作、工作范文、应用文书、外语学习、旅游景点、IT计算机、资格考试、word文档以及中国石油大学C语言上机题答案(2015版)答案_最全最详细等内容。本文共19页
相关内容搜索c语言练习(25)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数、3456,其中出现最多次数的数字是3和4,均出现了3次。
输入格式:
输入在第1行中给出正整数N(&=1000),在第2行中给出N个不超过整型范围的正整数,数字间以空格分隔。
输出格式:
在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
输入样例:
输出样例:
#include &stdio.h&
#define CN 10
int main(int argc, char const *argv[])
int counts[CN] = {0};
scanf(&%d&, &t);
for(i=0;i&t;i++){
scanf(&%d&, &num);
while(num & 0){
index = num%10;
counts[index]++;
num /= 10;
int max =0;
for(i=0;i&CN;i++){
max = counts[i] & max ? counts[i] :
printf(&%d:&, max);
for (i = 0; i & CN; ++i)
if(max == counts[i]){
printf(& %d&, i);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11673次
排名:千里之外
原创:36篇
(1)(2)(9)(1)(5)(21)C语言基础题库(138)
数组-07. 求一批整数中出现最多的个位数字(20)
代码长度限制
徐镜春(浙江大学)
给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数、3456,其中出现最多次数的数字是3和4,均出现了3次。
输入格式:
输入在第1行中给出正整数N(&=1000),在第2行中给出N个不超过整型范围的正整数,数字间以空格分隔。
输出格式:
在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。
输入样例:
输出样例:
#include&stdio.h&
int main()
while(scanf(&%d&,&n)!=EOF)
int a[10]={0};
scanf(&%c&,&s);//定义s只是实现换行
while(m!='\n')
scanf(&%c&,&m);
if(m=='0')
a[0]=a[0]+1;
if(m=='1')
a[1]=a[1]+1;
if(m=='2')
a[2]=a[2]+1;
if(m=='3')
a[3]=a[3]+1;
if(m=='4')
a[4]=a[4]+1;
if(m=='5')
a[5]=a[5]+1;
if(m=='6')
a[6]=a[6]+1;
if(m=='7')
a[7]=a[7]+1;
if(m=='8')
a[8]=a[8]+1;
if(m=='9')
a[9]=a[9]+1;
int MAX=0;
for(i=0;i&10;i++)
if(MAX&a[i])
printf(&%d: &,MAX);//找出最大次数
int b[1000];
int j=0,x=0;
for(i=0;i&10;i++)
if(a[i]==MAX)
x++;//找出数
for(j=0;j&x;j++)
if(j!=x-1)
printf(&%d &,b[j]);
printf(&%d\n&,b[j]);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:63173次
积分:3092
积分:3092
排名:第8635名
原创:251篇
评论:27条
(1)(4)(7)(4)(2)(4)(4)(7)(4)(4)(9)(8)(14)(6)(24)(6)(4)(30)(30)(16)(27)(38)

我要回帖

更多关于 进程和线程的区别 的文章

 

随机推荐