Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 08-01-2005, 16: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, 19: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, 19: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, 20:03   #4
Vash88
Senior Member
 
L'Avatar di Vash88
 
Iscritto dal: Sep 2003
Città: Regno Unito
Messaggi: 5726
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, 20: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: 9571
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, 20: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 20:24.
Rikka è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 20: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, 20: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: 9571
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, 21: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: 9571
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 22:04.
VegetaSSJ5 è offline   Rispondi citando il messaggio o parte di esso
Old 08-01-2005, 21: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, 22: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: 9571
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, 22: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, 22: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: 9571
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, 22: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, 02: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, 19: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, 20: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: 9571
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, 12: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 17-01-2005, 00: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, 09: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: 9571
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


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
iPhone Fold: scorte limitate al lancio m...
OpenAI porterà la pubblicità in ChatGPT ...
TSMC aumenterà ancora i prezzi: nel 2026...
Marvel pubblica anche il secondo teaser ...
Nuovo accordo tra xAI e il Pentagono: l'...
La famiglia Xiaomi 17 sta per registrare...
Nuove auto elettriche che vedremo sul me...
E-bike illegali, a Verona il più ...
Quali sono i giochi più venduti su Steam...
HONOR sta per lanciare un nuovo smartpho...
Jared Isaacman sarà alla guida de...
Il Tesla Cybertruck non arriverà ...
Xiaomi Watch 5 è ufficiale: architettura...
CD Projekt vende GOG: il co-fondatore Mi...
Il meglio di Amazon in 26 prodotti, aggi...
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: 21:24.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v
Hardware Upgrade Forum Database Error
Database Error Database error
The Hardware Upgrade Forum database has encountered a problem.

Please try the following:
  • Load the page again by clicking the Refresh button in your web browser.
  • Open the www.hwupgrade.it home page, then try to open another page.
  • Click the Back button to try another link.
The www.hwupgrade.it forum technical staff have been notified of the error, though you may contact them if the problem persists.
 
We apologise for any inconvenience.