您好,欢迎访问三七文档
当前位置:首页 > 高等教育 > 理学 > 北大计算概论作业3及答案
一、给定一个整数和一个整数数组,将该数从数组中删除。被删除的位置由后面的数据往前串,并输出新的数组。提示:设一个变量,记录数组元素的个数。(此题提交到课程网站,不需要提交到ACM)例如:给定的数是3,给定的数组是inta[20]={1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3};删除3,得新的数组1,0,-3,5,6,8,10,22,-1,5,11,20,100,9二、输入20个数,范围在10-100之间。读取每个数时,只打印不重复的值。(此题提交到课程网站,不需要提交到ACM)三、N盏灯排成一排,从1到N依次编号。有N个人也同样编号。第一个人将灯全部熄灭;第2个人将对应2和2的倍数的灯打开。第3个人将对应着3和3的倍数的做反向操作(如果原来是开,则关掉它,否则就打开它)。以后的人和3做同样的操作编写程序,在第N个人操作后,输出还亮着灯的编号。此题提交到ACM,题号:3178,不需要提交给助教。一、给定一个整数和一个整数数组,将该数从数组中删除。被删除的位置由后面的数据往前串,并输出新的数组。提示:设一个变量,记录数组元素的个数。(此题提交到课程网站,不需要提交到ACM)例如:给定的数是3,给定的数组是inta[20]={1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3};删除3,得新的数组1,0,-3,5,6,8,10,22,-1,5,11,20,100,9voidf1(){inta[20]={1,3,3,0,-3,5,6,8,3,10,22,-1,3,5,11,20,100,3,9,3};inti,j,count=0;for(i=0,j=0;j20;j++)if(a[j]!=3)a[i++]=a[j];elsecount++;for(j=0;j20-count;j++)coutsetw(4)a[j];coutendl;}二、输入20个数,范围在10-100之间。读取每个数时,只打印不重复的值。(此题提交到课程网站,不需要提交到ACM)voidf2(){intcount[91]={0},num;coutgive20integers:endl;for(inti=0;i20;i++){cinnum;if(count[num-10]0)continue;else{count[num-10]++;coutnum;}}}三、N盏灯排成一排,从1到N依次编号。有N个人也同样编号。第一个人将灯全部熄灭;第2个人将对应2和2的倍数的灯打开。第3个人将对应着3和3的倍数的做反向操作(如果原来是开,则关掉它,否则就打开它)。以后的人和3做同样的操作编写程序,在第N个人操作后,输出还亮着灯的编号。此题提交到ACM,题号:3178,不需要提交给助教。voidf3(){constintsize=1000;intN,lamp[size+1];inti,j;cinN;for(i=1;i=N;i++)lamp[i]=0;//0为关闭,1为打开从for(i=2;i=N;i++)//从3开始的每个人都要试for(j=1;j*i=N;j++)lamp[j*i]=1-lamp[j*i];lamp[0]=0;for(i=0;i=N;i++)if(lamp[i]==1)couti;coutendl;}}
本文标题:北大计算概论作业3及答案
链接地址:https://www.777doc.com/doc-10661553 .html