Valaki HELP stringek (NxN Mátrix)?
Egy ideje próbálkozom de a francért se akar sikerülni valaki tudna segíteni hogyan kéne csinálnom? Úgy akarom megcsinálni hogy beírom a "*/////" cuccot és betűcsérével megcsinálja és ahány betű van annyiszor sor csinál de valamiért nem tudom megcsinálja az hogy megszámolja a karaktereket és ha páros akkor írja ki hogy nem jo
Kérjük be NxN-es (N páratlan egész) négyzetes mátrix méretét és a program rajzoljon csillagokból, vagy más karakterekből négyzetet úgy, hogy a mellékátlóba / jelek legyenek. pl. 5x5ös esetben.
*////
/*///
//*//
///*/
////*
package HF;
import java.util.Scanner;
public class HF{
Scanner be = new Scanner(System.in);
void betucsere() {
System.out.println("Kérem a /****: ");
String s = be.nextLine();
for (int i=0; i<s.length()-1; i++) {
char c = s.charAt(s.length()-1);
s = s.substring(0, s.length()-1);
s = c + s;
System.out.println(s);
}
}
HF() {
betucsere();
}
public static void main(String[] args) {
new HF();
}
Tehát először a méretét kell bekérni a mátrixnak ? Ami egy egész páratlan szám. Másrészt a charAt fv, mindig ugyanazt a karaktert fogja beolvasni, ahogy a substring is ugyanazt a rész-stringet fogja visszaadni.
Egyszerűbb lenne pl. ha a for-ciklusba beleágyazol egy másik ciklust, amivel addig print-el '/'-t, amíg el nem éri a külső ciklus számlálójának aktuális értékét és akkor '*'-t és utána megint '/'-t, a belső ciklus is természetesen N-ig fut.
Más irányba megy csak ebbe nem mármint Ugy hogy a / vissza fele megy
import java.util.Scanner;
public class asd{
asd()
{
Scanner be = new Scanner(System.in); // deklarájuk a scannert
System.out.print("Kérem a szélességet: "); // bekérjük a szélességet
while(true) {
int szam = be.nextInt();
if(szam == 0) { // ha nulla lépjen ki
System.out.println("Kilépés");
break;
} else if(szam % 2 == 0) { // páros szamok nem jók
System.out.println("Csak páratlan számok.");
System.out.print("Ez nem páratlan : "); // bekérjük a következõt
} else {
for (int i = szam - 1; i >= 0; i--) {
for (int j = 0; j < szam; j++) {
if(i == j) {
System.out.print("/");
} else {
System.out.print("*");
}
}
System.out.println("");
}
System.out.print("Következõ: ");
}
}
}
public static void main(String[] args) {
new asd();
}
}
Nem tudom, h jött össze ez a visszafelé cucc, de a lényege itt van, amire gondoltam:
int N = 5;
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++){
if(i != j){
System.out.print("/");
}else{
System.out.print('*');
}
}
System.out.println("");
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!