Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione
Abbiamo provato il nuovo Galaxy S25 Edge, uno smartphone unico per il suo spessore di soli 5,8 mm e un peso super piuma. Parliamo di un device che ha pro e contro, ma sicuramente si differenzia dalla massa per la sua portabilità, ma non senza qualche compromesso. Ecco la nostra prova completa.
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto
Pensato per il professionista sempre in movimento, HP Elitebook Ultra G1i 14 abbina una piattaforma Intel Core Ultra 7 ad una costruzione robusta, riuscendo a mantenere un peso contenuto e una facile trasportabilità. Ottime prestazioni per gli ambiti di produttività personale con un'autonomia lontano dalla presa di corrente che permette di lavorare per tutta la giornata
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso
Basato su piattaforma Qualcomm Snapdragon X Plus a 8 core, il nuovo Microsoft Surface Pro 12 è un notebook 2 in 1 molto compatto che punta sulla facilità di trasporto, sulla flessibilità d'uso nelle differenti configurazioni, sul funzionamento senza ventola e sull'ampia autonomia lontano dalla presa di corrente
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-01-2005, 15:46   #1
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
[C] problema con matrice!!!!

Devo creare un programma che, acquisita una matrice dinamica, verifica se il primo elemento di una riga è divisibile per la somma della riga stessa....

Ho buttato giu qualcosa.......ma nn so come fare la parte finale.

Chi mi aiuta??


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

void inserisci (int **,int,int);
void visualizza (int **,int,int);
int elemento_somma (int **,int,int);

int main(void)
{
int rig,col,i,j,ok;
int **mat;

printf ("Inserisci il numero delle righe: ");
scanf ("%d",&rig);
printf ("Inserisci il numero delle colonne: ");
scanf ("%d",&col);

mat=(int**)malloc(rig*sizeof(int*));
for(i=0;i<rig;i++)
mat[i]=(int*)malloc(col*sizeof(int));

inserisci(mat,rig,col);
visualizza(mat,rig,col);
ok=elemento_somma(mat,rig,col);
printf("vettore somma=%d", ok);
getch();
system("PAUSE");
}


void inserisci (int **mat,int rig,int col)
{int i,j;
clrscr();
printf("Inserisci per righe la matrice");
for(i=0;i<rig;i++)
for(j=0;j<col;j++)
{gotoxy(30+3*j,3+i);
scanf("%d",&mat[i][j]);
}
}

void visualizza (int **m,int rig,int col)
{int i,j;
for (i=0;i<rig; i++)
for(j=0;j<col;j++)
{gotoxy(30+3*j,15+i);
printf("%d",m[i][j]);
}
}

int elemento_somma (int **mat, int rig, int col)

{int i,j,elemento_somma;

for (i=0;i<rig; i++)
elemento_somma=0;
for (j = 1; j < col; j++)
elemento_somma = mat [rig][j];
return (elemento_somma);

}
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 18:42   #2
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
eccolo...
fatto spero di aver capito il testo.

eccoti il link
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 18:55   #3
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
ma cosa devo cercare in quel sito che mi hai dato??
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 19:03   #4
Vash88
Senior Member
 
L'Avatar di Vash88
 
Iscritto dal: Sep 2003
Città: Regno Unito
Messaggi: 5714
clicca col destro e fai salva con nome
__________________
3090 FE & Ryzen 5700x - Legion 7 5800h 32gb - 3080 16gb
Vash88 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 19:18   #5
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
scusa ma il primo numero di una riga non può essere diviso per la somma dei numeri di quella riga, a meno che gli altri elementi non siano tutti nulli, ma in questo caso non vedo l'utilità del programma. ti puoi spiegare meglio su cosa deve fare il programma? se hai il testo puoi incollarlo qui?
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 19:22   #6
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
Il programma deve acquisire da tastiera una matrice in modo dinamico e dire se il primo numero della riga è divisibile per la somma della riga stessa.
Esempio:

3 7 8 ----------> la somma è 18 ed è divisibile per il primo numero 3.
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....

Ultima modifica di Rikka : 08-01-2005 alle 19:24.
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 19:42   #7
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
Quote:
Originariamente inviato da VegetaSSJ5
scusa ma il primo numero di una riga non può essere diviso per la somma dei numeri di quella riga, a meno che gli altri elementi non siano tutti nulli, ma in questo caso non vedo l'utilità del programma. ti puoi spiegare meglio su cosa deve fare il programma? se hai il testo puoi incollarlo qui?
esattamente ...
infatti se leggi nel programma che ho scritto ho specificato nei commenti questo fatto

Alla fine per logica ho deciso di fare arbtrariamente somma % primo elemento
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 19:59   #8
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
Quote:
Originariamente inviato da Rikka
Il programma deve acquisire da tastiera una matrice in modo dinamico e dire se il primo numero della riga è divisibile per la somma della riga stessa.
Esempio:

3 7 8 ----------> la somma è 18 ed è divisibile per il primo numero 3.
beh allora è il contrario.... cioè devi sapere de la somma dei numeri di una riga è divisibile per il primo numero di quella riga.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 20:46   #9
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
l'ho fatto in 5 minuti e senza ricontrollarlo cmq dovrebbe essere una cosa del genere
Codice:
#include <stdlib.h>
#include <stdio.h>

int main () {
	int righe, colonne, **matrice, i, j, el, somma;
	printf("Inserisci il numero di righe: ");
	scanf("%d", &righe);printf("\nInserisci il numero di colonne: ");
	scanf("%d", &colonne);
	if (righe<=0 || colonne<=0) {
		printf("\n\nInserire numeri positivi!!");
		exit(-1);
	}
	matrice=(int **) calloc (righe, sizeof(int **));
	for (i=0; i< righe; ++i) matrice[i]= (int *) calloc (colonne, sizeof(int *));
	for (i=0; i< righe; ++i) {
		for (j=0; j< colonne; ++j) {
			printf("\nInserisci l'elemento in posizione %d, %d: ", i, j);
			scanf ("%d", &el);
			matrice[i][j]= el;
		}
	}
	somma=0;
	for (i=0; i< righe; ++i) {
		for (j=0; j< colonne; ++j) somma+= matrice[i][j];
		if (!(somma%matrice[i][0])) printf("La riga %d (somma= %d) e' divisibile per il primo elemento %d\n", i, somma, matrice[i][0]);
		else printf("La riga %d (somma= %d) non e' divisibile per il primo elemento %d\n", i, somma, matrice[i][0]);
	}
	system("pause");
}

Ultima modifica di VegetaSSJ5 : 08-01-2005 alle 21:04.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 20:52   #10
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
meglio usare funzioni per il debugging
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 21:05   #11
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
Quote:
Originariamente inviato da LimiT-MaTz
meglio usare funzioni per il debugging
cosa intendi?
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 21:13   #12
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
se tu scrivi un programma (nel vero senso della parola) complesso.
Se tu fai tutto nel main e' un lavoro immenso se tu dividi il problema in tanti sottoinsiemi e ne analizzi uno alla volta e poi una soluzione. Quando compili e non ti gira ci metti poco a debuggare lavori sulle funzioni.
Cio' ti rende tutto piu' facile.
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 21:18   #13
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
e quello ti sembra un programma su cui effettuare un complesso debugging??
e cmq come ho detto l'ho fatto in poco tempo e non ho pensato per niente alla ottimizzazione e manutenzione futura, era solo per fare un esempio funzionante da mettere a disposizione di Rikka
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 21:23   #14
LimiT-MaTz
Senior Member
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 673
l'avevo già fattp nel 2 post

Cmq e' un fatto di abitudine scrivere tutto usando funzioni
__________________
MaTz!
LimiT-MaTz è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2005, 01:29   #15
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
grazie a tutti!!!!!
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2005, 18:07   #16
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
Ho un altro problema......questo programma acquisisce da tastiera un vettore e dovrebbe visualizzare un altro vettore con gli elementi che si ripetono nel primo vettore.

Sembra che funzioni ma quando lo stesso numero si ripete per piu di 1 volta es.( 345323 compare tre volte il numero 3) nn visualizza il numero 3 che si ripete, ma 333!!!!! Dovè l errore?????

Poi come faccio a visualizzare i numeri che si ripetono cosi:

3
4
5

anziche cosi 3 4 5

Grazie!!!

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

void leggi(int*,int);
void stampa_vettore(int*,int);
int ripetuti(int*,int);
//void nuovo
void main(void)
{
int n,*v,c;
printf("Inserisci il numero degli elementi del vettore (Numero Intero)\n");
scanf("%5d",&n);
v =(int*)malloc(n*sizeof(int));
leggi(v,n);
stampa_vettore(v,n);
ripetuti(v,n);
getch();
system("PAUSE");
}

void leggi(int*p,int l)
{
int i;
printf("inserisci i numeri nel vettore\n\n");
for( i = 0 ; i<l ; i++)
scanf("%d",&p[i]);
}

void stampa_vettore(int*p, int l)
{
int i;
printf("il vettore è....\n");
printf ("\n\n");
for( i=0;i<l;i++)
printf("%3d\n",p[i]);
printf("\n\n");
}

int ripetuti(int*p, int l)
{
int i,j,c;

c=0;
for (i=0; i<l; i++)
{
for (j=i+1; j<l; j++){
if (p[i]==p[j]){
c=c+1;
printf ("L'elemento che si ripete è: ");

printf("%d", p[i]);
}
}
}
}
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 09-01-2005, 19:01   #17
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
Codice:
#include <stdlib.h>
#include <stdio.h>

int esiste (int *vet, int dim, int num);

int main (void) {
	int dim, i, j, *vet, *rip;
	printf("Inserisci la dimensione del vettore: ");
	scanf("%d", &dim);
	if (dim<=0) {
		printf("La dimensione del vettore deve essere positiva!");
		exit(-1);
	}
	vet= (int *) calloc (dim, sizeof(int));
	rip= (int *) calloc (dim, sizeof(int));
	j=0;
	for (i=0; i<dim; ++i) {
		printf("\nInserisci il numero %d: ", i+1);
		scanf("%d", &vet[i]);
		if (esiste(vet, i, vet[i]) && !esiste(rip, j, vet[i])) {
			rip[j]=vet[i];
			++j;
		}
	}
	if (j>0) {
		printf("\n\nGli elementi che si ripetono sono:");
		for (i=0; i<j; ++i) printf("\n%d", rip[i]);
	}
	else printf("\n\nNon ci sono elementi che si ripetono\n");
	system("pause");
}

int esiste (int *vet, int dim, int num) {
	int i;
	for (i=0; i<dim; ++i) if (vet[i]==num) return 1;
	return 0;
}
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2005, 11:33   #18
Rikka
Member
 
Iscritto dal: Sep 2002
Messaggi: 220
Ringrazio tutti per i consigli.

Ma l'ultimo programma.......quello del vettore......si puo fare con le funzioni modificando quello che avevo postato???

Prendendo i programmi che mi avete fatto vedere ho rifatto quello con la matrice inserendoci le funzioni.......pero cè un problemino.......ad ogni riga mi memorizza anche il totale della riga precedente.......

Grazie veramente a tutti!!!!!!!!

#include <stdio.h>
#include <conio.c>

void inserisci (int **,int,int);
void visualizza (int **,int,int);
int elemento_somma (int **,int,int);

int main(void)
{
int rig,col,i,j,ok;
int **mat;

printf ("Inserisci il numero delle righe: ");
scanf ("%d",&rig);
printf ("Inserisci il numero delle colonne: ");
scanf ("%d",&col);

mat=(int**)malloc(rig*sizeof(int*));
for(i=0;i<rig;i++)
mat[i]=(int*)malloc(col*sizeof(int));

inserisci(mat,rig,col);
visualizza(mat,rig,col);
ok=elemento_somma(mat,rig,col);
getch();
system("PAUSE");
}


void inserisci (int **mat,int rig,int col)
{int i,j;
clrscr();
printf("Inserisci per righe la matrice");
for(i=0;i<rig;i++)
for(j=0;j<col;j++)
{gotoxy(30+3*j,3+i);
scanf("%d",&mat[i][j]);
}
}

void visualizza (int **m,int rig,int col)
{int i,j;
for (i=0;i<rig; i++)
for(j=0;j<col;j++)
{gotoxy(30+3*j,15+i);
printf("%d",m[i][j]);
}
}

int elemento_somma (int **mat, int rig, int col)

{int i,j,elemento_somma;

elemento_somma=0;
for (i=0;i<rig; i++)
{ for (j=0; j<col; j++)
elemento_somma += mat [i][j];
{gotoxy(30+3*j,15+i);
if (!(elemento_somma%mat[i][0]))
printf("La riga %d (somma= %d) e' divisibile per il primo elemento %d\n", i, elemento_somma, mat[i][0]);
else printf("La riga %d (somma= %d) non e' divisibile per il primo elemento %d\n", i, elemento_somma, mat[i][0]);
}
}
}
__________________
Athlon xp 2500@2300mhz, abit nf7-s, creative geforce4 ti 250@300-500@600, 256x2 ddr 400 samsung dual channel, H.D. maxtor diamond plus 60gb, soundblaster live 5.1, mast.dvd piooner 105, mast.cd liteon 40125S, creative inspire 5+1.....
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 16-01-2005, 23:39   #19
Vault
Member
 
L'Avatar di Vault
 
Iscritto dal: Dec 2002
Città: Mantova & Milano
Messaggi: 86
Sto studiando anch'io informatica (in particolare C) e ti faccio una domanda... Cosa ti ha spinto a definire una matrice come **matrice e non come matrice[][]?
Ho l'impressione che puntatori e vettori non siano così interscambiabili come sembra... La matrice che crei con due puntatori non ha una dimensione finita (magari mi dirai che questo è il bello) né i suoi elementi sono consecutivi...
__________________
No! Provare no! Fare, o non fare. Non c'è provare.
Feedback positivi per: vortex99, 10ruicosta10, lera757.
Vault è offline   Rispondi citando il messaggio o parte di esso
Old 17-01-2005, 08:10   #20
VegetaSSJ5
Senior Member
 
L'Avatar di VegetaSSJ5
 
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9302
Quote:
Originariamente inviato da Vault
Ho l'impressione che puntatori e vettori non siano così interscambiabili come sembra... La matrice che crei con due puntatori non ha una dimensione finita (magari mi dirai che questo è il bello) né i suoi elementi sono consecutivi...
la dimensione invece è finita eccome! che cosa va fatta a fare allora la malloc?? e poi anche se i suoi elementi non sono consecutivi (cosa che cmq non credo) al programmatore questo non interessa visto che cmq il vettore si può visitare incrementando l'indice.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Galaxy S25 Edge: il top di gamma ultrasottile e leggerissimo. La recensione Samsung Galaxy S25 Edge: il top di gamma ultraso...
HP Elitebook Ultra G1i 14 è il notebook compatto, potente e robusto HP Elitebook Ultra G1i 14 è il notebook c...
Microsoft Surface Pro 12 è il 2 in 1 più compatto e silenzioso Microsoft Surface Pro 12 è il 2 in 1 pi&u...
Recensione REDMAGIC Astra Gaming Tablet: che spettacolo di tablet! Recensione REDMAGIC Astra Gaming Tablet: che spe...
Dopo un mese, e 50 foto, cosa abbiamo capito della nuova Nintendo Switch 2 Dopo un mese, e 50 foto, cosa abbiamo capito del...
Il CISPE chiede di annullare l'acquisizi...
La Now Bar supporterà il doppio d...
Vecchi Bitcoin, guadagno mostruoso: bale...
Nel 2018 Samsung snobbò NVIDIA: u...
Provare i vestiti senza mai uscire di ca...
SanDisk High Bandwidth Flash (HBF): un c...
Panasonic presenta Aquarea DHW, pompa di...
Il bracciale Meta leggerà i gesti...
iOS e Android sotto attacco: per l'antit...
A Verona dopo i monopattini ecco le e-bi...
Itch.io come Steam: al bando i giochi pe...
Digitalizzazione, identità e AI: ...
Kindle Colorsoft: arriva la versione da ...
Electra ottiene altri 433 milioni di eur...
Cercate un hard disk esterno? Oggi Seaga...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:25.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v