Πως θα φτιάξουμε ενα Τετράγωνο με αστερίσκους στηνγλώσσα C ?

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Πως θα φτιάξουμε ενα Τετράγωνο με αστερίσκους στηνγλώσσα C ?

Post by ARCHON » Thu Oct 26, 2006 9:57 am

Θα ήθελα κάποιους να μου εξηγήσει πως μπορούμε να φτιάξουμε ένα τετράγωνο με αστερίσκους στην γλώσσα C , όχι όμως με τον τρόπου του να γράφουμε printf * κτλ αλλά με τη χρήση κάποιων κύκλων for π.χ .
Σε κάθε περίπτωση περιμένω τη βοήθεια σας !!
:roll: :shock: ;)
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
Tomahawk
Mbyte level
Mbyte level
Posts: 536
Joined: Tue May 18, 2004 1:50 pm

Post by Tomahawk » Thu Oct 26, 2006 10:11 am

Πως σου ακουγεται αυτο:

1) Φτιαξε το string με x stars
2) Print it x times

?

Btw πως γινεται να κανεις printf χωρις printf αλλα με for?
User avatar
Sreak
Venus Project Founder
Venus Project Founder
Posts: 956
Joined: Fri Apr 02, 2004 9:56 am
Academic status: PhD
Location: eltrun.gr

Post by Sreak » Thu Oct 26, 2006 10:30 am

Φαντάζομαι εννοεί πως δεν θέλει στατικά να τυπώσει ένα τετράγωνο (X*X πίνακα) αλλά να χρησιμοποιήσει for.


Code: Select all

for (i=0;i<9;i++){
    for (j=0;i<9;i++){
         printf * ;
    }
    printf "allagi grammis";
}
To παραπάνω θα σου γεμίσει έναν τετράγωνο πίνακα με αστεράκια. Αν θέλεις να κρατήσεις μόνο το τετράγωνο (δηλαδή το το "περίγραμμα" του πίνακα) κάνε το παρακάτω:

Code: Select all

for (i=0;i<9;i++){
       for (j=0;i<9;i++){
            if(i==0 || i==8 || j==0 || j==8){
              
                  printf * ;
            }
            else printf " ";
       }
       printf "allagi grammis";
 }
To παραπάνω θα σου τυπώσει έναν πίνακα 9Χ9, αν θέλεις κάτι άλλο το παραμετροποιείς.
Για c δεν ξέρω αν θα παίζει :) αλλά αλγοριθμικά αν κατάλαβα τι θέλεις κάπως έτσι γίνεται.[/quote]
Last edited by Sreak on Thu Oct 26, 2006 10:38 am, edited 2 times in total.
User avatar
Tomahawk
Mbyte level
Mbyte level
Posts: 536
Joined: Tue May 18, 2004 1:50 pm

Post by Tomahawk » Thu Oct 26, 2006 10:36 am

Kαι ο algo που εδωσα δεν ειναι στατικος.Το x ειναι param.
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Thu Oct 26, 2006 12:02 pm

Γράφω το ακόλουθο αλλά μοθ εμφανίζει μόνο μια οριζόντια γραμμη με 9 * ! Γιατί ? Τι είναι λάθος>??

Code: Select all

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i, j;
    
    for (i=0; i<9; i++){
    for (j=0; i<9; i++){ 
        printf ("*\n") ; 
          
           }  
    printf (""); 
   }
  system("PAUSE");	
  return 0;
}
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
nap
Kilobyte level
Kilobyte level
Posts: 239
Joined: Tue Nov 23, 2004 5:25 pm
Location: In da ghetto
Contact:

Post by nap » Thu Oct 26, 2006 12:12 pm

1) Στο δεύτερο for χρησιμοποιείς πάλι το i αντί για j.
2) Δεν χρειάζεται αλλαγή γραμμής μετά από κάθε αστερίσκο, αλλά μετά από κάθε 9 αστερίσκους.
It is by will alone I set my mind in motion...
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Thu Oct 26, 2006 12:16 pm

nap++
for (i=0; i<9; i++){
for (j=0; i<9; i++){
for (i=0; i<9; i++){
for (j=0; j<9; j++){
θύμα του Copy Paste.. ;) [/quote]
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Thu Oct 26, 2006 12:17 pm

nap,
έκανα τις αλλαγές που μου είπες
όμως μου εμφανίζει ένα ατελείωτο γέμισμα με ατελείωτα * που δεν έχουν τελειωμό, είσαι σίγουρος πως είναι σωστό αυτό που είπες το δοκίμασες ?

Εδώ όπως το δοκίμασα υπό τις οδηγίες σου :

Code: Select all

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i, j;
    
    for (i=0; i<9; i++){
    for (j=0; j<9; j++){ 
        printf ("*") ; 
          
           }  
    printf (""); 
   }
  system("PAUSE");	
  return 0;
}
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Thu Oct 26, 2006 12:18 pm

for (j=0; j<9; i++){
Είναι infinite loop
for (j=0; j<9; J ++){
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Thu Oct 26, 2006 12:19 pm

οπότε θέλει και το \n

Code: Select all

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i, j;
   
    for (i=0; i<9; i++){
    for (j=0; j<9; j++){
        printf ("*") ;
         
           } 
    printf ("\n");
   }
  system("PAUSE");   
  return 0;
}
Ok works ;)

thanks so much σ'όλους που συνέβαλαν ;)
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
User avatar
nap
Kilobyte level
Kilobyte level
Posts: 239
Joined: Tue Nov 23, 2004 5:25 pm
Location: In da ghetto
Contact:

Post by nap » Thu Oct 26, 2006 12:22 pm

Ναι, θέλει και το "\n" ακριβώς εκεί που το έβαλες τώρα, όχι εκεί που το είχες την προηγούμενη φορά...
It is by will alone I set my mind in motion...
User avatar
ARCHON
bit level
bit level
Posts: 30
Joined: Tue Oct 03, 2006 3:09 pm

Post by ARCHON » Thu Oct 26, 2006 12:49 pm

Παραθέτω και τη δεύτερη λύση (εσωτερικά κενό τετράγωνο) που ειπώθηκε παραπάνω implemented for C :oops: για όποιον μελλοντικά τυχόν ενδιαφερόμενο :

Code: Select all

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  
  
      int i, j;
    
  for (i=0;i<9;i++){
       for (j=0;j<9;j++){
            if(i==0 || i==8 || j==0 || j==8){
             
                  printf ("*") ;
            }
            else printf (" ");
       }
       printf ("\n");
 } 
  
  system("PAUSE");	
  return 0;
}
Q: To be OR to be an Open sourcer..?

A: To be AND to be an Open sourcer..!

That really makes a difference, anyway whenever there is something "wrong" the answer to fix it has to be always logical ;)
Post Reply

Return to “Προγραμματισμός”