El problema es que no tienen porqué ser la misma cantidad de caracteres. Entonces no puedes formar una única palabra. No sé si me entiendes.
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú
#include <stdio.h>
#include <string.h>
#define TAM 20
#define MAX_STUDENTS 3
typedef struct{
char name[TAM];
char lastNameFather[TAM];
char lastNameMother[TAM];
} Student;
void initializeStudent(Student*, char*, char*, char*);
void showStudent(Student);
void sortStudents(Student*);
int main(){
Student st1, st2, st3;
initializeStudent(&st1, "aaaa", "baba", "cccd");
initializeStudent(&st2, "aaaa", "abab", "cccc");
initializeStudent(&st3, "aaab", "baba", "cccc");
Student students[MAX_STUDENTS] = {st1, st2, st3};
puts("Alumnos sin ordenar");
for(size_t i = 0; i < MAX_STUDENTS; i++)
showStudent(students[i]);
sortStudents(students);
puts("\nAlumnos ordenados");
for(size_t i = 0; i < MAX_STUDENTS; i++)
showStudent(students[i]);
}
void initializeStudent(Student *st, char *name, char *lastNameFather, char *lastNameMother){
strncpy(st->name, name, TAM);
strncpy(st->lastNameFather, lastNameFather, TAM);
strncpy(st->lastNameMother, lastNameMother, TAM);
}
void showStudent(Student st){
printf("%s\t%s\t%s\n", st.lastNameFather, st.lastNameMother, st.name);
}
void sortStudents(Student *students){
Student assistant;
for(size_t i = 0; i < MAX_STUDENTS-1; i++){
if(strcmp(students[i].lastNameFather, students[i+1].lastNameFather) > 0){
assistant = students[i];
students[i] = students[i+1];
students[i+1] = assistant;
}
else if(strcmp(students[i].lastNameFather, students[i+1].lastNameFather) == 0){
if(strcmp(students[i].lastNameMother, students[i+1].lastNameMother) > 0){
assistant = students[i];
students[i] = students[i+1];
students[i+1] = assistant;
}
else if(strcmp(students[i].lastNameMother, students[i+1].lastNameMother) == 0){
if(strcmp(students[i].name, students[i+1].name) > 0){
assistant = students[i];
students[i] = students[i+1];
students[i+1] = assistant;
}
}
}
}
}
Citar
Y por último, sabéis por qué si citas un código en C aparecen " " en la tabulación del código?? Eso en códigos entre etiquetas cpp no pasa. Y hay alguna forma de usar el tabulador?? Ya que eso de tener que usar muchos espacios para tabular bien el código...
Cita de: AlbertoBSD en 22 Noviembre 2018, 03:47 AM
Por que no hacerlo al mismo tiempo?
#include <stdio.h>
int main(void){
printf("Ingresar cantidad de elementos: ");
int r;
scanf("%d", &r);
int i = 0;
int array[r],A[r];
do {
array[r - 1] = r;
A[i] = r;
r = r- 1;
++i;
} while (r > 0);
printf("Lista: \n");
for(r = 0; r < i; ++r)
printf("%d \t", array[r]);
printf("\nLista: \n");
for(r = 0; r < i; ++r)
printf("%d \t", A[r]);
return 0;
}
do {
array[r - 1] = r;
A[r - 1] = r; // Esta era la instruccion que guardaba el array <A> al reves que el array <array>
r = r- 1;
++i;
} while (r > 0);
#include <stdio.h>
int main(void){
printf("Ingresar cantidad de elementos: ");
int r;
scanf("%d", &r);
int i = 0;
int array[r],A[r];
for(size_t i = 0; i < r; i++){
array[i] = i;
A[i] = i;
}
printf("Lista: \n");
for(size_t i = 0; i < r; i++)
printf("%d \t", array[i]);
printf("\nLista: \n");
for(size_t i = 0; i < r; i++)
printf("%d \t", A[i]);
return 0;
}
int array[TAM] = {1,2,3,4,5,...};
int array[TAM] = {1,2,3,4,5,...};
int nuevoArray[TAM] = array; // Esto no es correcto.
int array[10] = {0,1,2,3,4,5,6,7,8,9};
int nuevoArray[10];
for(size_t i = 0; i < 10; i++)
nuevoArray[i] = array[i];