Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Deep Tech Revolution: così Area Science Park apre i laboratori alle startup
Siamo tornati nel parco tecnologico di Trieste per il kick-off del programma che mette a disposizione di cinque startup le infrastrutture di ricerca, dal sincrotrone Elettra ai laboratori di genomica e HPC. Roberto Pillon racconta il modello e la visione
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo
HP OMEN MAX 16-ak0001nl combina RTX 5080 Laptop e Ryzen AI 9 HX 375 in un desktop replacement potente e ben raffreddato, con display 240 Hz e dotazione completa. Autonomia limitata e calibrazione non perfetta frenano l'entusiasmo, ma a 2.609 euro è tra le proposte più interessanti della categoria.
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta
Google ha appena rinnovato la sua celebre serie A con il Pixel 10a, lo smartphone della serie più conveniente se consideriamo il rapporto tra costo e prestazioni. Con il chip Tensor G4, un design raffinato soprattutto sul retro e l'integrazione profonda di Gemini, il colosso di Mountain View promette un'esperienza premium a un prezzo accessibile. E il retro non ha nessuno scalino
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 29-01-2009, 19:33   #1
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
[C] Cancellare una riga da una matrice

Ho il seguente codice.


libreria.h
Codice:
#include <stdio.h>
#include <stdlib.h>

#define MAX 30

typedef int vector [MAX];
typedef int matrix [MAX][MAX];
typedef char string [MAX];
main.c
Codice:
#include "libreria.h"

int main()
{
	vector v;
	matrix m;
	int a, b, check=0, ckquad=0;
	string filename;
	printf("Nome del text file: ");
	scanf("%s",filename);
	read (filename, m, &a, &b, &check, &ckquad);
	if (check)
	{
		print(m,a,b);
		if (ckquad)
		{
			printf("La matrice è quadrata\n");
			printf("La sua diagonale è la seguente: ");
			diagonale (m,a,v);
		}
		else
			;
		
		inverti(m,&a,&b);
		print(m,a,b);
	}
	else
		;

	return 0;
}
funzioni.c
Codice:
#include "libreria.h"

void read (string filename, matrix m, int *a, int *b, int *check, int *ckquad)
{
	FILE *f;
	f = fopen (filename,"r");
	
	if (f)
	{
		*check = 1;
		fscanf(f,"%d",a);
		fscanf(f,"%d",b);
		
		if (*a == *b) *ckquad = 1;
		
		int i,j;
		for (i=0;i<*a; ++i)
			for (j=0;j<*b;++j)
				fscanf(f,"%d",&m[i][j]);
		fclose(f);
		printf("Lettura eseguita, assegnazione ok\n");
	}
	
	else
		*check = 0;
}

void print (matrix m, int a, int b)
{
	printf("\n");
	int i,j;
	for (i=0;i<a;++i)
	{
		for (j=0;j<b;++j)
			printf("%2d ",m[i][j]);
		printf("\n");
	}
	printf("\n");
}

void diagonale (matrix m, int x, vector v)
{
	int i,j;
	for (i=0;i<x;++i)
	{
		v[i] = m[i][i];
		printf("%2d ",v[i]);
	}
	
	printf("\n");

	for (i=0;i<x;++i)
	{
		for (j=0;j<x;++j)
			if (i == j)
				printf("%2d ",m[i][j]);
			else
				printf("   ");
		printf("\n");
	}
	printf("\n");
	
}

void inverti (matrix m, int *a, int *b)
{
	int app;
	app=*a;
	*a=*b;
	*b=app;
}


Se volessi cancellarne una riga?
Poi volevo sapere, sto sbagliando a lavorare sulla rappresentazione (data da print) della matrice, controllando a e b che ne controllano la stampa, e non direttamente sulla variabile m?
Mi chiedo ciò, perché in questo modo riesco soltanto a cancellare un'ultima riga o colonna, ma se volessi cancellare una riga o colonna centrale?
masteryuri è offline   Rispondi citando il messaggio o parte di esso
Old 29-01-2009, 22:02   #2
masteryuri
Senior Member
 
L'Avatar di masteryuri
 
Iscritto dal: Feb 2006
Città: Caserta
Messaggi: 1056
per i posteri...
dopo un po di ragionamento ho ottenuto queste due funzioni, tutto ok.

Codice:
void delete_r (matrix m, int x, int *a, int b)
{
	int j;
	int val = (*a)-1;
	
	for (;x<val;++x)
		for (j=0;j<b;++j)
			m[x][j] = m[x+1][j];
	--*a;
}

void delete_c (matrix m, int x, int a, int *b)
{
	int i;
	int val = (*b)-1;
	
	for (;x<val;++x)
		for (i=0;i<a;++i)
			m[i][x] = m[i][x+1];
	--*b;
}

Ultima modifica di masteryuri : 30-01-2009 alle 06:02.
masteryuri è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Deep Tech Revolution: così Area Science Park apre i laboratori alle startup Deep Tech Revolution: così Area Science P...
HP OMEN MAX 16 con RTX 5080: potenza da desktop replacement a prezzo competitivo HP OMEN MAX 16 con RTX 5080: potenza da desktop ...
Recensione Google Pixel 10a, si migliora poco ma è sempre un'ottima scelta Recensione Google Pixel 10a, si migliora poco ma...
6G, da rete che trasporta dati a rete intelligente: Qualcomm accelera al MWC 2026 6G, da rete che trasporta dati a rete intelligen...
CHUWI CoreBook Air alla prova: design premium, buona autonomia e qualche compromesso CHUWI CoreBook Air alla prova: design premium, b...
Samsung Galaxy S26 Ultra, promosso ma se...
Gemini sempre più integrato in Go...
NVIDIA investe in Thinking Machines Lab:...
NVIDIA prepara NemoClaw, piattaforma ope...
Samsung testa una batteria da 20.000 mAh...
Xbox non reintrodurrà i giochi in...
Profili social dei defunti creati automa...
L'IA accelera il lavoro, ma serve ancora...
Insta360 lancia Quick Reader: 512GB di p...
Notebook: prezzi verso un incremento del...
Il Politecnico di Milano va oltre i tran...
Questo nuovo driver integrato in Windows...
Offerte di Primavera Amazon: scope elett...
PS5 Slim con SSD da 1TB e NBA 2K26 inclu...
Nexperia, tra Olanda e Cina divampa anco...
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:13.


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