- 1,522
- 427
- CPU
- Ryzen 5 3600
- Dissipatore
- GELID Phantom
- Scheda Madre
- MSI B450 Gaming Plus Max
- HDD
- 500GB m.2 + 2TB HDD
- RAM
- 16GB Corsair LPX 3000mhz
- GPU
- Gigabyte GTX 960 OC
- Audio
- Integrata
- Monitor
- SyncMaster 223BW
- PSU
- Antec HCG-520M
- Case
- Meshify C
- Net
- Gigabit Fastweb
- OS
- Windows 10 64bit
Salve a tutti,
Allora, io dovrei fare un programma usando le strutture in modo che mi stampi a video un piano cartesiano e il perimetro di un rettangolo (devo immettere io due vertici).
Non sapendo come fare, ho pensato di usare un array bidimensionale, dove nelle coordinate del perimetro imposto il valore ' * ' (array di char).
Ora, non mi soffermo sulla validità del codice in generale (per quello ci penso dopo), ma in fase di compilazione mi riporta questo errore: funzionerettangolo.c:89:5: error: subscripted value is neither array nor pointer nor vector a[b.ascissa][a.ordinata] = ' * '; (questo errore si ripete ovviamente per tutte le righe uguali).
Quale sarebbe l'errore? Preciso che all'università non abbiamo ancora affrontato i puntatori ( suppongo si riferisca a quello l'errore).
Grazie dell'aiuto!
Allora, io dovrei fare un programma usando le strutture in modo che mi stampi a video un piano cartesiano e il perimetro di un rettangolo (devo immettere io due vertici).
Non sapendo come fare, ho pensato di usare un array bidimensionale, dove nelle coordinate del perimetro imposto il valore ' * ' (array di char).
Ora, non mi soffermo sulla validità del codice in generale (per quello ci penso dopo), ma in fase di compilazione mi riporta questo errore: funzionerettangolo.c:89:5: error: subscripted value is neither array nor pointer nor vector a[b.ascissa][a.ordinata] = ' * '; (questo errore si ripete ovviamente per tutte le righe uguali).
Quale sarebbe l'errore? Preciso che all'università non abbiamo ancora affrontato i puntatori ( suppongo si riferisca a quello l'errore).
Grazie dell'aiuto!
Codice:
struct punto{
int ordinata;
int ascissa;
};
bool CheckValue(struct punto p) {
if(p.ascissa < 0 || p.ascissa > 9 ) {
return 0;
}
else if(p.ordinata < 0 || p.ordinata > 9 ) {
return 0;
}
else
return 1;
}
struct punto inserisci_punto(){
struct punto p;
do {
printf("Inserisci l'ascissa:\n");
scanf("%i", &p.ascissa);
printf("Inserisci l'ordinata:\n");
scanf("%i", &p.ordinata);
} while (CheckValue(p)!= 1);
return p;
}
struct rettangolo crea_rettangolo(struct punto a, struct punto b) {
if(a.ascissa >= b.ascissa) {
while(b.ascissa!= a.ascissa) {
a[b.ascissa][a.ordinata] = '*';
b.ascissa++;
}
}
else {
while(a.ascissa!= b.ascissa) {
a[a.ascissa][a.ordinata] = '*';
a.ascissa++;
}
}
if(a.ascissa >= b.ascissa) {
while(b.ascissa!= a.ascissa) {
a[b.ascissa][b.ordinata] = '*';
b.ascissa++;
}
}
else {
while(a.ascissa!= b.ascissa) {
a[a.ascissa][b.ordinata] = '*';
a.ascissa++;
}
}
if(a.ordinata >= b.ordinata) {
while(b.ordinata != a.ordinata) {
a[a.ascissa][b.ordinata] = '*';
b.ordinata++;
}
}
else {
while(a.ordinata!= b.ordinata) {
a[a.ascissa][a.ordinata] = '*';
a.ordinata++;
}
}
if(a.ordinata >= b.ordinata) {
while(b.ordinata != a.ordinata) {
a[b.ascissa][b.ordinata] = '*';
b.ordinata++;
}
}
else {
while(a.ordinata!= b.ordinata) {
a[b.ascissa][a.ordinata] = '*';
a.ordinata++;
}
}
}