ciao a tutti volevo un'aiutino per risolvere questo problema
Grazie

Si realizzi in C una funzione che dato due cubi, uno di 15x15x15 interi, e uno di 3x3x3 interi, dica quante volte il cubo più piccolo è contenuto in quello più grande. Si ammettono sovrapposizioni parziali.


Ecco il codice:

 # include <stdio.h>

 # define N 100

int contare(int*,int,int,int);

int main (){
    int m[N][N][N],r,c,p,i,j,k;
    int ris;

    do{
        printf("quante righe:");
        scanf("%d",&r);
        printf("quante colonne:");
        scanf("%d",&c);
        printf("quante profondeta:");
        scanf("%d",&p);}
    while(r<0 || c<0 || p<0 || r>N || c>N || p>N);

    for(i=0;i<r;i++){
        for(j=0;j<c;j++){
            for(k=0;k<p;k++){

            printf("inserisci l'elemento %d-%d-%d:",i,j,k);
            scanf("%d",&m[i][j][k]);}}}

            ris=contare(*m,r,c,p);
            printf("ci sono %d sottomatrici\n",ris);
            return 0;

            }

int contare(int *mat,int r1,int c1,int p1){
int a,b,c,i,j,k;
int cont;

    for(a=0;a<r1-2;a++){
    for(b=0;b<c1-2;b++){
    for(c=0;c<p1-2;c++){

    for(i=a;i<a+1;i++){
        for(j=b;j<b+1;j++){
            for(k=c;k<c+1;k++){

            }}}

                cont++;}}}

return cont;
}

chiesto 01 Feb '16, 15:17

mai's gravatar image

mai
20224

modificato 06 Feb '16, 10:23

dadexix86's gravatar image

dadexix86 ♦♦
17.0k916161

Qualcosa tipo questo?

#include<stdio.h>
main()
{
    printf("2197");
}
(01 Feb '16, 16:08) dadexix86 ♦♦ dadexix86's gravatar image

Scusa ma non ho capito la sua risposta, a me serve la funzione che conta.

(01 Feb '16, 16:18) mai mai's gravatar image

2197 è il numero di volte che un cubo 3x3x3 sta in un cubo 15x15x15, con sovrapposizioni parziali. La funzione che ho scritto io restituisce questo numero, come da testo dell'esercizio che hai postato (lo ammetto, è una provocazione, ma la natura della tua domanda _non- chiede una risposta più complessa).

Se vuoi una risposta più articolata, fai una domanda più articolata, spiegando cosa devi usare, cosa sai usare, cosa sai fare, cosa no, quali sono i problemi che trovi nel farlo, ecc...
Non venire qui a cercare una soluzione a un problema scolastico senza averci nemmeno provato :)

(01 Feb '16, 16:25) dadexix86 ♦♦ dadexix86's gravatar image

scusa ma è la prima volta che posto un problema...ho cercato di mettere il codice che non mi funzione qui ma viene un pò strano

(01 Feb '16, 18:22) mai mai's gravatar image

Ho aggiunto il tuo codice alla domanda, formattandolo con il markdown corretto :)

(01 Feb '16, 18:33) dadexix86 ♦♦ dadexix86's gravatar image

ok..grazie sono un po inesperta

(01 Feb '16, 18:36) mai mai's gravatar image

mi potrebbe aiutare a capire dove sta l'errore?

(01 Feb '16, 19:06) mai mai's gravatar image

Ad esempio qui

for(i=0;i<r-3;<i++){

c'è un < di troppo.

Quali sono gli errori che ottieni quando compili? E quale versione di gcc usi?
In genere il compilatore è abbastanza prolisso da essere utile.

Ma aspetterei volentieri @enzotib, che di programmazione se ne intende molto più di me (che lo faccio solo a tempo perso, e decisamente non bene).

(01 Feb '16, 21:39) dadexix86 ♦♦ dadexix86's gravatar image

ho provato a cambiare il codice ma mi da un numero troppo grande..quando uso questo codice con una matrice con due dimensioni mi da una risposta corretta, invece con tre dimensioni no...non capisco il perchè

(06 Feb '16, 10:22) mai mai's gravatar image

Non mi è chiaro l'ultimo pezzo del codice. Cosa hai intenzione di fare esattamente con i, j e k?

(06 Feb '16, 10:25) dadexix86 ♦♦ dadexix86's gravatar image

ho dichiarato solo la matrice 15x15x15 e ho considerato con i,j,k le prime 3 righe,3 colone e 3 p1 che va a contare e cosi via aumentando scorrendo tt la matrice

(06 Feb '16, 10:36) mai mai's gravatar image

Ma nel ciclo di i, j, k non gli fai fare nulla, in cont++ è nel ciclo di a, b, c :)

Inoltre non mi è chiaro perché definisci una matrice e gli fai prendere in input dei valori.

Coooomunque, io lo farei così (no, non è vero, vista la consegna io lo farei come ti ho detto sopra, ma vabbè...)

(06 Feb '16, 10:58) dadexix86 ♦♦ dadexix86's gravatar image

Hai ragione non fa niente nel ciclo i, j, k Grazie per la spiegazione

(12 Feb '16, 15:43) mai mai's gravatar image
Scrivi tu la prima risposta!
abilita/disabilita anteprima

Segui questa domanda

Via email:

Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui

Via RSS:

Risposte

Risposte e commenti

Basi di markdown

  • *corsivo* o __corsivo__
  • **grassetto** o __grassetto__
  • collegamento:[testo](http://url.com/ "titolo")
  • immagine?![alt testo](/path/img.jpg "titolo")
  • elenco numerato: 1. Foo 2. Bar
  • per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
  • è supportato anche semplice HTML

Tag:

×107

domanda posta: 01 Feb '16, 15:17

domanda visualizzata: 1,101 volte

ultimo aggiornamento: 12 Feb '16, 15:43

Chiedi è un servizio di supporto gestito da Ubuntu-it. Contattaci!

powered by OSQAPostgreSQL database
Ubuntu e Canonical sono marchi registrati da Canonical Ltd.