要求对输入7位号码加密,加密规则为每一位上数字加5再除以10的余数即为该位上的数并且首尾数字交换

我是用数组做的,但是输出结果总是不对。
求大神解答
import java.util.Scanner;
import java.util.Arrays;

class Jia{
    Scanner input=new Scanner(System.in);
    int[]arr=new int[7];
    int i;

    public void fangfa()
    {

        for( i=0;i<7;i++)
        {     int a=arr[i];
              a=input.nextInt();
              System.out.println(arr[i]+" ");

        }

        System.out.println("加密后的号码为");
        for(i=0;i<7;i++)
       {
            arr[i]=arr[i]+5;
        }
        int temp=arr[0];
        arr[0]=arr[6];
        arr[6]=temp; 
        for(i=0;i<7;i++)
        {
            System.out.println(arr[i]+"");
        }



    }
}

public class Jiami {
public static void main(String[] args) {

      Jia j=new Jia();
     System.out.println("输入要加密的号码");
     j.fangfa();

}}

我那个先没有除以10,因为先加上5去试试结果也是错的

思路如下:
1,构造一个7位号码的数组
2,构造一个7位号码并且每位号码加5并除以10的余数的数组

怎么错了,如果之前尾数是5那就可能有问题

每位数字都小于5作为输入,结果就是正确的。 大于5为什么不行你自己想。 arr[i]=(arr[i]+5)%10;加上求余数程序就行了

你得到的应该是 0 吧 首先你先声明了一个长度为7的int空数组也就是 【0,0,0,0,0,0,0】 之后你没有去修改这些东西

能告诉我下面这个代码的意思 吗?

     for( i=0;i<7;i++)
        {     int a=arr[i];
              a=input.nextInt();
              System.out.println(arr[i]+" ");

        }

a=arr[i]然后a=input.nextInt(),请问arr[i]是什么?你的数组根本就没有初始化值

你试试这个

     for( i=0;i<7;i++)
        {     arr[i]=input.nextInt();
              System.out.println(arr[i]+" ");

        }

int a=arr[i];
a=input.nextInt();
改成
arr[i]=input.nextInt();

数组根本没有赋值

for( i=0;i<7;i++)
{     int a=arr[i];
            a=input.nextInt();
            System.out.println(arr[i]+" ");

}