《第四次c语言题》由会员分享,可在线阅读,更多相关《第四次c语言题(18页珍藏版)》请在金锄头文库上搜索。
1、问题 A: Sequence Problem : Array Pratice时间限制: 1 Sec内存限制: 4 MB提交: 1842解决: 403提交状态讨论版题目描述整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。你的任务是计算符合某些要求的整数序列的和,这些序列中的整数都是小于1000的非负整数。输入输
2、入为多行,直到文件末尾结束。每行第一个整数为N(N=1000),后接一个长度为N的整数序列。输出对输入的整数序列两两相加:第1行和第2行相加、第3行和第4行相加按顺序输出结果:每行输出一个整数序列,每两个整数之间用一个空格分隔。若序列数目不为偶数,则视作补一个长度为0的整数序列相加。值得注意的是一个长度为0的整数序列也应该有输出,即使没有整数输出,也应该占有一行,因为“每行输出一个整数序列”。样例输入3 1 2 35 10 15 20 30 504 100 200 300 400样例输出11 17 23 30 50100 200 300 400提示这里最少要用到一个数组来存数整数序列或整数序列
3、的和。#include int main()int a1000=0,b1000=0;int m,i,j=0,p,k;while(scanf(%d,&m)!=EOF) j=j+1;if(j%2!=0)for(i=0;im;i=i+1)scanf(%d,&ai);else for(p=0;pm;p=p+1)scanf(%d,&bp);if(j%2!=1)if(i=p) for(k=0;kp;k=k+1) if(k=0)printf(%d,ak+bk);ak=0;bk=0; else printf( %d,ak+bk);ak=0;bk=0; printf(n);elsefor(k=0;ki;k=k+
4、1)if(k=0)printf(%d,ak+bk);ak=0;bk=0;elseprintf( %d,ak+bk);ak=0;bk=0;printf(n);if(m!=0&j%2=1)for(i=0;i0),后面有M行输入。每行输入为不超过1000个整数的整数序列,每个整数序列的输入均以0结束。输出对输入的整数序列两两相加:第1行和第2行相加、第3行和第4行相加按顺序输出结果:每行输出一个整数序列,每两个整数之间用一个空格分隔。若序列数目不为偶数,则视作补一个长度为0的整数序列相加。值得注意的是一个长度为0的整数序列也应该有输出,即使没有整数输出,也应该占有一行,因为“每行输出一个整数序列”。
5、样例输入31 2 3 010 15 20 30 50 0100 200 300 400 0样例输出11 17 23 30 50100 200 300 400提示这里最少要用到一个数组来存数整数序列或整数序列的和。一个省事的做法是把数组定义的稍微大一点,因为有时你的程序可能会边界处理的不是太好。Append Code提交状态讨论版#include void main() int i,j,m,n,g,k,q;n=0; scanf(%d,&m);if(m%2=0)for(k=0;kj)j=i;for(i=0;ij;i+)if(i=0)printf(%d,a0+b0);elseprintf( %d,a
6、i+bi);printf(n);elsefor(k=0;k1)for(j;j+)scanf(%d,&aj);if(aj=0)break;for(i=0;i+)scanf(%d,&bi);if(bi=0)break;if(ij)j=i;for(i=0;ij;i+)if(i=0)printf(%d,a0+b0);elseprintf( %d,ai+bi);printf(n);elsefor(j=0;j+)scanf(%d,&aj);if(aj=0)break;for(i=0;i0),后面有M行输入。每行第一个整数为N(N=1000),后接一个长度为N的整数序列。输出对输入的整数序列两两相加:第1行
7、和第2行相加、第2行和第3行相加按顺序输出结果:每行输出一个整数序列,每两个整数之间用一个空格分隔。若最后序列不足两个,则视作补一个长度为0的整数序列相加。值得注意的是一个长度为0的整数序列也应该有输出,即使没有整数输出,也应该占有一行,因为“每行输出一个整数序列”。样例输入33 1 2 35 10 15 20 30 504 100 200 300 400样例输出11 17 23 30 50110 215 320 430 50100 200 300 400提示这里最少要用到两个数组来存储整数序列。#include #define N 1001 int main() int i,j,y,m,n,x,aN=0,bN=0; scanf(%d,&n); for(i=1;i=n;i+) if(i%2!=0) scanf(%d,&y); for(j=0;jm?y:m; if(x=0) printf(n); else for(j=0;jx;j+) if(j=0)