本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。
输入格式:
输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。
输出格式:
顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。
输入样例:
10
5 1 7 14 6 36 4 28 50 100
输出样例:
-4 6 7
-8 30 -32
24 22 50
代码部分:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
try (// TODO Auto-generated method stub
Scanner in = new Scanner(System.in)) {
int n,i;
int[] a = new int[11];
int[] b = new int[11];
n = in.nextInt();
for(i=0;i<n;i++)
{
a[i] = in.nextInt();
}
for(i=0;i<n-1;i++)
{
b[i] = a[i+1]-a[i];
}
for(i=0;i<n-1;i++) //n个数相减后,得到n-1个结果,故b[i]中有n-1个数
{
if((i+1)%3==0 || i==n-2) //换行条件:第三个数后一定换行,或最后一个数输出后换行,最后一个数为b[n-2]
System.out.println(b[i]);
else if((i+1)%3!=0) //每行第一个/第二个数输出后带空格
System.out.print(b[i]+" ");
}
in.close();
}
}
本题重点在于输出格式(行末不得有多余空格),思路如下:
① 当位置为3的倍数或者最后一个数时,在数字后输出回车。
② 当位置不为3的倍数时,在数字后输出空格。
③ 判断条件①与②不能互换!不能互换!不能互换!!!若为最后一个数,后只能跟回车。
java刚入门小白,如有错误或优化欢迎大佬们的指点!