按照你的要求打印矩陣的Java程序如下
我們提供的服務有:成都做網(wǎng)站、網(wǎng)站建設、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、商州ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的商州網(wǎng)站制作公司
public?class?A?{
public?static?void?main(String[]?args)?{
int?N=3;
int?n,i,j;
for(i=1;i=N;i++){
n=1;
for(j=1;ji;j++){
System.out.print(n+++"?");
}
for(j=i;j=2*N-1-i;j++){
System.out.print(n+"?");
}
for(j=2*N-1-i+1;j=2*N-1;j++){
System.out.print(n--+"?");
}
System.out.println();
}
for(i=N-1;i=1;i--){
n=1;
for(j=i-1;j=1;j--){
System.out.print(n+++"?");
}
for(j=2*N-1-i;j=i;j--){
System.out.print(n+"?");
}
for(j=2*N-1;j=2*N-1-i+1;j--){
System.out.print(n--+"?");
}
System.out.println();
}
}
}
運行結果
1?1?1?1?1?
1?2?2?2?1?
1?2?3?2?1?
1?2?2?2?1?
1?1?1?1?1
1. 在控制臺輸入變量
通過while語句來控制,可多次輸入,如果為0或者不為整型就退出程序
2. 通過公式2 * in + 1來計算整個圖形列和行;
3. 進入第一層for循環(huán)行,在此可計算出:
最大正菱形以外的此行的左邊或者右邊1的個數(shù)left=Math.abs((col - (2 * i - 1)) / 2)。
每行最中間的那個值middle = (col - 2 * left) / 2 + 1;
定義1個變量num來控制遞增和遞減
4. 進入第二層for循環(huán)列
先判斷如果在菱形之外直接輸出1.
如果在菱形之內,輸出num,根據(jù)middle來判斷num是遞增還是遞減,依次打輸出來。
importjava.util.Scanner;
publicclassMiniDmo {
publicstaticvoid main(String[] args) {
int in = 1; //定義輸入的變量
while (in != 0) {//如果輸入變量為0的話就退出程序
System.out.println("請輸入任意整形數(shù)字繼續(xù),0退出");
try {
in = new Scanner(System.in).nextInt() ; // 輸入?yún)?shù)
} catch (Exception e) {
continue;
}
int col = 2 * in + 1; //根據(jù)輸入變量計算列的長度
for (int i = 1; i = col; i++) {
int left = Math.abs((col - (2 * i - 1)) / 2); //根據(jù)列數(shù)和當前行計算出每行左邊或者右邊的1的個數(shù)(2*i-1)為每行兩邊的1 的個數(shù)總和
intnum = 1; //定義num的目的是為了添加中間有順序的列。
int middle = (col - 2 * left) / 2 + 1; //定義每行的中心點
for (int j = 1; j = col; j++) {
if (j = left || j col - left) { //判斷如果當前列正處在左邊或者右邊
System.out.print(1);
} else {
System.out.print(num); //如果不在兩邊,
if (num middle) { //如果在臨界點左邊,就讓num遞增
num++;
}
if (num == middle) { //如果正好在臨界點上,把臨界點改小,以便于執(zhí)行下面IF判斷
middle = -1;
} elseif (num middle) { //如果過了臨界點后,讓num遞減
num--;
}
}
}
System.out.println(); //換行!
}
}
}
}
class matric{
public static void main(String args[]){
System.out.print("16 15 14 13\n5 4 3 12\n6 1 2 11\n7 8 9 10\n");
}
}
for?(int?i?=?0;?i??n;?i++)?{
for?(int?j?=?0;?j??n;?j++)?{
System.out.print("*");
}
System.out.println();
}
import java.util.Scanner;
public class A
{
public static void main(String args[])
{
Scanner in = new Scanner(System.in);
int m = in.nextInt();
for (int i = 0; i m; i++)
{
int j;
for (j = 0; j i; j++)
System.out.print(j);
for (int k = 0; k m - i; k++)
System.out.print(j);
System.out.println();
}
}
}
import java.util.ArrayList;
import java.util.Scanner;
public class Junzheng {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int i = in.nextInt();
int[][] arr= new int[i][i];
ArrayListInteger list = new ArrayListInteger();
for(int j=0;j(i*i);j++){
list.add(Integer.valueOf(j+1));
}
//System.out.println(list);
for(int m=0;marr[0].length;m++){
for(int n=0;narr.length;n++){
arr[m][n]=list.remove(0);
}
}
for(int k=0;karr[0].length;k++){
for(int l=0;larr.length;l++){
System.out.print(arr[k][l]+" ");
}
System.out.println();
}
}
}
代碼應該可以運行
不知道樓主對打印的順序是不是有的要求
按照順序打印的話代碼就是這樣
執(zhí)行的話,先輸入一個數(shù)字,整型,沒有做判斷,輸錯就異常了
之后會打印i*i的矩陣
網(wǎng)頁題目:打印矩陣的代碼java 打印矩陣python
鏈接地址:http://muchs.cn/article46/hgidhg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、網(wǎng)站改版、網(wǎng)站制作、App設計、商城網(wǎng)站、網(wǎng)頁設計公司
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)