Dato un vettore chiamato cognomi(N) contente i cognomi degli studenti di una classe, formare i turni per le interrogazioni visualizzando gli studenti, scelti casualmente, in gruppi di X persone (con X fornito in ingresso e compreso tra 3 e 5)
/*
CLAUDIO CARIDNALE 3AI
Dato un vettore chiamato cognomi(N) contente i cognomi degli studenti di una classe, formare i turni per le interrogazioni visualizzando gli studenti, scelti casualmente, in gruppi di X persone (con X fornito in ingresso e compreso tra 3 e 5)
*/
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define MAX 1000
#define LUNG 100
void acquisizioni(void);
void turni(void);
void riordina(int pos);
int len;
int x;
char cognomi[MAX][LUNG];
char turno[5][LUNG];
int main(){
//dichiarazioni
int i,j,lun;
//inizializzazione generatore numeri pseudo-casuali
srand(time(NULL));
//acquisizioni
acquisizioni();
//visualizzazione risultati
lun = len;
for(i=0;i<=lun/x;i++){
turni();
printf("%d° turno : ",i+1);
for(j=0;j<x&&j+i*x<lun;j++)
printf(" %s",turno[j]);
printf("\n");
}
}
void acquisizioni(void){
//dichiarazioni
int i;
//acquisizione lunghezze
do{
printf("inerire il numero di cognomi : ");
scanf("%d",&len);
}while(len<1 || len>=MAX);
//acquisizione dati
//cognomi
for(i=0;i<len;i++){
printf("inserire il cognome numero %d : ",i+1);
scanf("%s",cognomi[i]);
}
//x
do{
printf("inerire il numero di persone per ogni turno(compreso tra 3 e 5) : ");
scanf("%d",&x);
}while(x<3 || x>5);
}
void turni(void){
//dichiarazioni
int i,pos,lun;
//generazione turni
lun = len;
for(i=0;i<x&&i<lun;i++){
pos = rand()%len;
strcpy(turno[i], cognomi[pos]);
len--;
riordina(pos);
}
}
void riordina(int pos){
//dichiarazioni
int i;
//riordinamento
for(i=pos;i<len;i++)
strcpy(cognomi[i], cognomi[i+1]);
}