Java 1维数组,5的倍数。坚持了几年。编码新手
这是任务: 编写一个程序,分配并存储数组中5的前20个倍数,称为Data,程序中不能使用其他数组。程序应根据以下要求输出阵列的元素: a) 仅编写命令以在数据中分配和存储值 b) 输出数组:10个数字/行,每行的总和 c) 输出数组:按相反顺序,5个数字/行,每行的和 d) 奇数索引位置值(数据[1]、数据[3]、数据[5]、…)、5个值/行及其和 e) 偶数索引位置值(数据[3]、数据[4]、数据[6]、…)、5个值/行及其总和 这是我的代码:Java 1维数组,5的倍数。坚持了几年。编码新手,java,arrays,for-loop,Java,Arrays,For Loop,这是任务: 编写一个程序,分配并存储数组中5的前20个倍数,称为Data,程序中不能使用其他数组。程序应根据以下要求输出阵列的元素: a) 仅编写命令以在数据中分配和存储值 b) 输出数组:10个数字/行,每行的总和 c) 输出数组:按相反顺序,5个数字/行,每行的和 d) 奇数索引位置值(数据[1]、数据[3]、数据[5]、…)、5个值/行及其和 e) 偶数索引位置值(数据[3]、数据[4]、数据[6]、…)、5个值/行及其总和 这是我的代码: //** TASK 4 //a,b i
//** TASK 4
//a,b
int data[]=new int[21]; int sum=0;
for(int i=1;i<21;i++){
data[i]=5*i;
sum+= data[i];
if(i%11==0)
System.out.println();
System.out.print(data[i] + " ");
}
System.out.println("sum " + sum);
// int a[]=new int[21];
// for(int i=1;i<21;i++){
// a[i]=5*i;
// //System.out.print(a[i] + " ");
// }
// System.out.println();
System.out.println();
//c
int sum2=0;
for(int i=data.length-2;i>0;i--){
data[i]+=5;
sum2+= data[i];
if(i%5==0)
System.out.println();
System.out.print(data[i] + " ");
}
System.out.println("sum " + sum2);
System.out.println();
//d
int sum3=0;
for(int i=1;i<21;i=i+2){
data[i]=5*i;
sum3+= data[i];
if(i%11==0)
System.out.println();
System.out.print(data[i] + " ");
}
System.out.println("sum " + sum3);
System.out.println();
//e
int sum4=0;
for(int i=2;i<21;i=i+2){
data[i]=5*i;
sum4+= data[i];
if(i%5==0)
System.out.println();
System.out.print(data[i] + " ");
}
System.out.println("sum " + sum4);
- 我不知道如何区分我的a和b代码
- 对于c,我在第一行得到了4个数字,我不知道为什么
- 我有这个权利
- 它不允许我每行有5个号码
- 他希望从5开始,而不是从0开始
- 我不会在这里给出答案,作为一项家庭作业,我相信过程比结果更重要。不过,我会尽我所能去做导游
我注意到的第一件事是这个类在这里非常有用
正如@Filburt所指出的:试着一次只做一部分
从a开始:尝试习惯第一个索引是0的事实,然后只需迭代20个元素,并使其值符合您的要求:
(i+1)*5
b:这里模数和StringBuilder
很方便。您希望做的是迭代所有data[i]
,然后将data[i]+“”
附加到字符串生成器,同时设置值的运行总和
由于您希望每10个条目添加一个总和和一个新行,因此需要知道的是,20个值的i%10
是0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9
因此,当您到达第10个元素时,9
需要将总和添加到StringBuilder
和一个新行字符(“\r\n”
在windows上,“\n”
在Unix/MacOSX上),并将总和设置回0
最后,您可以简单地打印stringbuilder,瞧
c:和前面一样,实际上,只是向后迭代,模数为5,继续4,3,2,1,0,…
(意思是你在0上加和)
d&e:这实际上与b相同,但仅每隔一个条目打印一次,其中i%2==1
和i%2==0
。因此,只要确保在这是真的并且一切正常时只追加到stringbuilder
希望这能有所帮助,但不要太明显。我不知道是否应该发布这篇文章,但还是给你:
// Part (a)
int data[] = new int[21];
for (int i = 1; i < 21; i++){
data[i]=5*i;
}
// Part (b)
int sum=0;
for(int i = 1; i < 21; i++){
System.out.print(data[i] + " ");
sum+= data[i];
if(i%10==0)
{
System.out.println(" Sum: " + sum);
sum = 0;
}
}
System.out.println();
// Part (c)
int sum2=0;
for(int i = 1; i < 21; i++){
System.out.print(data[21-i] + " ");
sum2+= data[21-i];
if(i%5==0)
{
System.out.println(" Sum: " + sum2);
sum2 = 0;
}
}
System.out.println();
// Part (d)
int sum3=0;
for(int i= 2; i < 22; i = i+2){
System.out.print(data[i-1] + " ");
sum3+= data[i-1];
if(i % 10 == 0){
System.out.println(" Sum: " + sum3);
sum3 = 0;
}
}
System.out.println();
// Part (e)
int sum4=0;
for(int i=2;i<21;i=i+2){
System.out.print(data[i] + " ");
sum4+= data[i];
if(i % 10==0){
System.out.println(" Sum: " + sum4);
sum4 = 0;
}
}
//第(a)部分
整数数据[]=新整数[21];
对于(int i=1;i<21;i++){
数据[i]=5*i;
}
//第(二)部分
整数和=0;
对于(int i=1;i<21;i++){
系统输出打印(数据[i]+“”);
总和+=数据[i];
如果(i%10==0)
{
System.out.println(“总和:+Sum”);
总和=0;
}
}
System.out.println();
//第(三)部分
int-sum2=0;
对于(int i=1;i<21;i++){
系统输出打印(数据[21-i]+“”);
sum2+=数据[21-i];
如果(i%5==0)
{
System.out.println(“总和:+sum2”);
sum2=0;
}
}
System.out.println();
//第(四)部分
int sum3=0;
对于(int i=2;i<22;i=i+2){
系统输出打印(数据[i-1]+“”);
sum3+=数据[i-1];
如果(i%10==0){
系统输出打印项次(“总和:+sum3”);
sum3=0;
}
}
System.out.println();
//第(e)部分
int sum4=0;
对于(int i=2;i@Stefan“询问家庭作业是可以的”。OP并不是在试图掩盖这是家庭作业的事实,这里有一些代码表明已经做了一些努力。也许你只是被错误的假设所阻碍,认为你需要一次性实现a)和b)。如果你只是循序渐进地完成作业,应该不会太难。@Filburt我已经试过了。在它上面停留了一天,而不是i=1…20的int[21]
数组和数组,你创建int[20]
数组,在0处开始for
循环,每次迭代用5乘以i+1
。按照大多数标准,它只是更整洁的代码,并且在数组中使用的内存稍微少一些。我还没有学习StringBuilder,所以我对你说的话感到非常困惑。谢谢你的帮助,因为这是一个家庭作业,你是新的编码,然后忘记(现在)<代码> StringBuilder <代码>,但考虑阅读和尝试自己的时候,你可以。您仍然可以使用String myString=string1+string2+代码>同样的结果。非常感谢@1587;یفان欢迎您!如果这解决了您的问题,请将答案标记为已接受,这样您的问题就不会出现在未回答的问题中。
100 95 90 85
80 75 70 65 60
55 50 45 40 35
30 25 20 15 10 sum 1045
5 15 25 35 45
55 65 75 85 95 sum 500
10 20 30 40
50 60 70 80 90
100 sum 550
// Part (a)
int data[] = new int[21];
for (int i = 1; i < 21; i++){
data[i]=5*i;
}
// Part (b)
int sum=0;
for(int i = 1; i < 21; i++){
System.out.print(data[i] + " ");
sum+= data[i];
if(i%10==0)
{
System.out.println(" Sum: " + sum);
sum = 0;
}
}
System.out.println();
// Part (c)
int sum2=0;
for(int i = 1; i < 21; i++){
System.out.print(data[21-i] + " ");
sum2+= data[21-i];
if(i%5==0)
{
System.out.println(" Sum: " + sum2);
sum2 = 0;
}
}
System.out.println();
// Part (d)
int sum3=0;
for(int i= 2; i < 22; i = i+2){
System.out.print(data[i-1] + " ");
sum3+= data[i-1];
if(i % 10 == 0){
System.out.println(" Sum: " + sum3);
sum3 = 0;
}
}
System.out.println();
// Part (e)
int sum4=0;
for(int i=2;i<21;i=i+2){
System.out.print(data[i] + " ");
sum4+= data[i];
if(i % 10==0){
System.out.println(" Sum: " + sum4);
sum4 = 0;
}
}