Está en la página 1de 21

Universidad

Politecnica Salesiana

programación
Milena Roxana
Quintana Román
Nivel 2
Ejercicios de Arreglos
Unidimensionales
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

PS5.1 Escribe un programa que, al dar como dato un arreglo unidimensional de números
enteros, determine cuántos de ellos son positivos, cuántos negativos y cuántos nulos.
Dato: VEC[N] (arreglo unidimensional de tipo entero de N elementos, 1 ≤ N ≤ 100).
CODIGO
#include <stdio.h>
int main(){
int A;
printf("Ingrese cuantos numeros desas ingresar: ");
scanf("%d",&A);
int vector[A];

short i;
int B=0;
for (i = 1; i <= A; i++)
{
printf("Ingrese el dato numero [%d]: ",i);
scanf("%d",&B);
vector[i]=B;
}
short j;
int n_positivos=0;
int n_negativos=0;
int n_nulos=0;

for (j = 1; j <= A; j++)


{
if(vector[j]>0){
n_positivos=n_positivos+1;
} else if (vector[j]<0){
n_negativos=n_negativos+1;
}else if(vector[j]==0) {
n_nulos=n_nulos+1;
}
}
printf("Total numeros positivos: %d\n",n_positivos);
printf("Total numeros negativos: %d\n",n_negativos);
printf("Total numeros nulos: %d\n",n_nulos);
return 0;
}
PRUEBA DE ESCRITORIO
Ingrese cuantos números deseas ingrese: 5
Ingrese el dato número [1]: 6
Ingrese el dato número [2]: 9
Ingrese el dato número [3]: -2
Ingrese el dato número [4]: 3
Ingrese el dato número [5]: 0
Total números positivos: 3
Total números negativos: 1
Total números nulos: 1
Proceso finalizado después de 52.3 segundos con valor de retorno

2
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

Presione una tecla para continuar ...


PS5.3 Escribe un programa que almacene en un arreglo unidimensional los primeros 100
números de Fibonacci e imprima el arreglo correspondiente.
CODIGO
#include <stdio.h>
void main(){
double fc=0, fc1=0, a=1;
double fibo[100];
short i;
for (i = 0; i < 100; i++)
{
fc1=fc+a;
a=fc;
fc=fc1;
fibo[i]=fc1;
}
for (i=0; i<100; i++)
printf("%d) %.0lf\n",i+1,fibo[i]);
}
PRUEBA DE ESCRITORIO
1) 1
2) 1
3) 2
4) 3
5) 5
6) 8
7) 13
8) 21
9) 34
10) 55
11) 89
12) 144
13) 233
14) 377
15) 610
16) 987
17) 1597
18) 2584
19) 4181
20) 6765
21) 10946
22) 17711
23) 28657
24) 46368
25) 75025
26) 121393
27) 196418
28) 317811
29) 514229
30) 832040

3
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

31) 1346269
32) 2178309
33) 3524578
34) 5702887
35) 9227465
36) 14930352
37) 24157817
38) 39088169
39) 63245986
40) 102334155
41) 165580141
42) 267914296
43) 433494437
44) 701408733
45) 1134903170
46) 1836311903
47) 2971215073
48) 4807526976
49) 7778742049
50) 12586269025
51) 20365011074
52) 32951280099
53) 53316291173
54) 86267571272
55) 139583862445
56) 225851433717
57) 365435296162
58) 591286729879
59) 956722026041
60) 1548008755920
61) 2504730781961
62) 4052739537881
63) 6557470319842
64) 10610209857723
65) 17167680177565
66) 27777890035288
67) 44945570212853
68) 72723460248141
69) 117669030460994
70) 190392490709135
71) 308061521170129
72) 498454011879264
73) 806515533049393
74) 1304969544928657
75) 2111485077978050
76) 3416454622906707
77) 5527939700884757
78) 8944394323791464
79) 14472334024676220
80) 23416728348467684
4
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

81) 37889062373143904
82) 61305790721611584
83) 99194853094755488
84) 160500643816367070
85) 259695496911122560
86) 420196140727489660
87) 679891637638612220
88) 1100087778366101900
89) 1779979416004714000
90) 2880067194370816000
91) 4660046610375530500
92) 7540113804746346500
93) 12200160415121877000
94) 19740274219868226000
95) 31940434634990100000
96) 51680708854858326000
97) 83621143489848426000
98) 135301852344706760000
99) 218922995834555200000
100) 354224848179262000000

--------------------------------
Process exited after 0.0854 seconds with return value 100
Presione una tecla para continuar . . .

PS5.5 Escribe un programa que inserte y elimine elementos en un arreglo unidimensional


de tipo entero que se encuentre ordenado en forma creciente. Toma en cuenta que no se
pueden insertar elementos repetidos. Datos: VEC[N], ELE Donde: VEC es un arreglo
unidimensional de tipo entero de N elementos, 1 ≤ N ≤ 100, y ELE una variable de tipo
entero que representa el número que se va a insertar o eliminar.
CODIGO
#include <stdio.h>
int arreglo[100];
int max=0;
int posicion=0;
short Buscar(int Numero);
void Eliminar();
void Ordenar();
int main(){
short cas =0;
int num=0;
do
{
printf("1) Ingresar valor\n");
printf("2) Eliminar valor\n");
printf("3) Imprimir Vector ordenadamente\n");
printf("4) Salir\n");
printf("Escoja Opci%cn : ",162);
scanf("%hd",&cas);
switch (cas)

5
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

{
case 1:
if(max<100){
printf("Ingrese un valor : ");
scanf("%d",&num);
if(max==0){
arreglo[max]=num;
max++;

}else if(!Buscar(num)){
arreglo[max]=num;
max++;
} else {
printf("El valor ya existe\n\n");
}
Ordenar();
}else{
printf("El vector esta lleno\n\n");
}
break;
case 2:
if (max==0){
printf("No hay valores para eliminar\n\n");
}else{
printf("Ingrese valor a eliminar : ");
scanf("%d",&num);
if(Buscar(num)){
if(max==1){
max--;
}else{
Eliminar();
max--;
}
printf("Eliminacion exitosa \n\n");
}else{
printf("No hay valores para eliminar\n\n");
}
}
break;
case 3:
if(max!=0){
printf("Vector\n");
short i;
for (i = 0; i < max; i++)
{
printf("%d\t",arreglo[i]);
}
printf("\n\n");
}else{
printf("El vector no tiene valores\n\n");
6
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

}
break;
case 4:
printf("Gracias por usar el comando :3\n\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=4);
}
short Buscar(int Numero){
int primero =0;
int ultimo = max -1;
int medio = (primero+ultimo)/2;
while (primero<=ultimo)
{
if (arreglo[medio]< Numero)
{
primero=medio+1;
}
else if (arreglo[medio]== Numero)
{
posicion=medio;
return 1;
}
else {
ultimo = medio - 1;
}

medio = (primero+ultimo)/2;
}
if (primero>ultimo)
{
return 0;
}
}
void Ordenar()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = max / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
7
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

e = 1;
while (e <= (max - salto))
{
if (arreglo[e - 1] > arreglo[(e - 1) + salto])
{
auxi = arreglo[(e - 1) + salto];
arreglo[(e - 1) + salto] = arreglo[e - 1];
arreglo[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void Eliminar(){
int aux;
int i;
for (i = posicion; i < max; i++){
arreglo[i] = arreglo[i+1];
}
}
PRUEBA DE ESCRITORIO
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 8
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 5
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 1
Ingrese un valor : 2
1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 2
Ingrese valor a eliminar : 5
Eliminacion exitosa

8
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 3
Vector
2 8

1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 3
Vector
2 8

1) Ingresar valor
2) Eliminar valor
3) Imprimir Vector ordenadamente
4) Salir
Escoja Opción : 4
Gracias por usar el comando :3

--------------------------------
Process exited after 46.13 seconds with return value 0
Presione una tecla para continuar . . .

PS5.7 En un arreglo unidimensional de tipo real se tienen almacenadas las toneladas


mensuales de cereales cosechadas durante el año anterior en una estancia de la pampa
Argentina. Escribe un programa que calcule e imprima lo siguiente: a) El promedio anual
de toneladas cosechadas. b) ¿Cuántos meses tuvieron una cosecha superior al promedio
anual? c) ¿En qué mes se produjo el mayor número de toneladas? ¿Cuántas fueron?
Dato: COS[12] (arreglo unidimensional de tipo real de 12 elementos).
CODIGO
#include <stdio.h>
#include <stdlib.h>
float cose[12];
char meses[12][11] = {
{"Ene"},
{"Feb"},
{"Mar"},
{"Abr"},
{"May"},
{"Jun"},
{"Jul"},
{"Ago"},
{"Sep"},
{"Oct"},
{"Nov"},

9
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

{"Dic"}
};
short conteo=0;
void Generar();
float Promedio();
void Superior(float prom);
void Mayor();
void Ingresar();
void Imprimir();
int main(){
short cas=0;
do
{
printf("1) Ingresar Valores\n");
printf("2) Usar el demo\n");
printf("3) Visualizar promedio anual\n");
printf("4) Visualizar meses que tuvieron cosecha superior a la anual\n");
printf("5) Visualizar el mes con mayor producci%cn\n",162);
printf("6) Visualizar la lista de producci%cn\n",162);
printf("7) Salir\n");
printf("Escoja opci%cn : ",162);
scanf("%hd",&cas);
switch (cas)
{
case 1:
Ingresar();
break;
case 2:
Generar();
break;
case 3:
if(conteo)
printf("El promedio de toneladas es %.2f\n\n",Promedio());
else
printf("Debe agregar valores primero\n\n");
break;
case 4:
if(conteo)
Superior(Promedio());
else
printf("Debe agregar valores primero\n\n");
break;
case 5:
if(conteo)
Mayor();
else
printf("Debe agregar valores primero\n\n");
break;
case 6:
if(conteo)
10
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

Imprimir();
else
printf("Debe agregar valores primero\n\n");
break;
case 7:
printf("Adios\n\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=7);
}
void Generar(){
short i;
for (i = 0; i < 12; i++)
{
cose[i]=rand()%501 + 100;
}
conteo=1;
printf("Los datos demos se han cargado exitosamente\n\n");
}
void Ingresar(){
short i;
printf("Ingreso de toneladas\n");
for (i =1; i <=12; i++)
{
printf("Ingrese las toneladas para el mes de %s : ",meses[i]);
scanf("%f",&cose[i]);
}
conteo=1;
printf("\n");
}
void Superior(float prom){

short flag = 0;
short i;
for (i = 0; i < 12; i++)
{
if(prom<cose[i]){
printf("%s : %.2f\n",meses[i],cose[i]);
flag++;
}
}
if(flag==0){
printf("La produccion ha sido constante\n");
}
printf("\n");
}
void Mayor(){
11
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

float may = 0.0;


short flag=-1;
short i;
for (i = 0; i < 12; i++)
{
if(may<cose[i]){
may = cose[i];
flag=i;
}
}
if(flag==-1){
printf("Debe revisar los valores\n\n");
}else{
printf("La mayor produccion se dio en el mes de :\n");
printf("%s con %.2f toneladas\n", meses[flag],cose[flag]);
}
printf("\n");
}
float Promedio(){
float suma = 0;
short i;
for (i = 0; i < 12; i++)
{
suma += cose[i];
}
return suma/12;
}
void Imprimir(){
printf("Lista de produccion\n");
short i;
for (i = 0; i < 12; i++)
printf("%s : %.2f toneladas\n",meses[i],cose[i]);
printf("\n");
}
PRUEBA DE ESCRITORIO
1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 1
Ingreso de toneladas
Ingrese las toneladas para el mes de Feb : 8
Ingrese las toneladas para el mes de Mar : 9
Ingrese las toneladas para el mes de Abr : 4
Ingrese las toneladas para el mes de May : 5
Ingrese las toneladas para el mes de Jun : 6
Ingrese las toneladas para el mes de Jul : 4

12
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

Ingrese las toneladas para el mes de Ago : 7


Ingrese las toneladas para el mes de Sep : 8
Ingrese las toneladas para el mes de Oct : 5
Ingrese las toneladas para el mes de Nov : 1
Ingrese las toneladas para el mes de Dic : 2
Ingrese las toneladas para el mes de : 0

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 2
Los datos demos se han cargado exitosamente

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 3
El promedio de toneladas es 385.83

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 4
Feb : 531.00
Mar : 422.00
Abr : 548.00
Jul : 556.00
Ago : 400.00
Sep : 509.00
Oct : 516.00

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
13
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

Escoja opción : 5
La mayor produccion se dio en el mes de :
Jul con 556.00 toneladas

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 6
Lista de produccion
Ene : 141.00 toneladas
Feb : 531.00 toneladas
Mar : 422.00 toneladas
Abr : 548.00 toneladas
May : 231.00 toneladas
Jun : 293.00 toneladas
Jul : 556.00 toneladas
Ago : 400.00 toneladas
Sep : 509.00 toneladas
Oct : 516.00 toneladas
Nov : 294.00 toneladas
Dic : 189.00 toneladas

1) Ingresar Valores
2) Usar el demo
3) Visualizar promedio anual
4) Visualizar meses que tuvieron cosecha superior a la anual
5) Visualizar el mes con mayor producción
6) Visualizar la lista de producción
7) Salir
Escoja opción : 7
Adios

--------------------------------
Process exited after 46.64 seconds with return value 0
Presione una tecla para continuar . . .

PS5.9 Construye un programa en C que, al recibir como datos dos arreglos


unidimensionales de tipo entero, ordenados en forma ascendente, de N y M elementos
respectivamente, genere un nuevo arreglo unidimensional ordenado en forma ascendente
de N+M elementos de tipo entero, mezclando los dos primeros arreglos. Datos: VEC1[N],
VEC2[M]
Donde: VEC1 y VEC2 son dos arreglos unidimensionales de tipo entero de N y M
elementos, respectivamente, 1 ≤ N ≤ 100, 1 ≤ M ≤ 100.
CODIGO
#include <stdio.h>

14
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

#include <stdlib.h>
#include <time.h>
int arreglo1[100];
int arreglo2[100];
int arreglo3[200];
int m=0;
int n = 0;
int nm = 0;
int posicion=0;
void OrdenarA();
void OrdenarB();
void OrdenarC();
void Imprimir(short indice);
void Ingresar();
void Generar(short indice, short limite);
void Unir();
int main(){
srand(time(NULL));
short cas =0;
int num=0, a=0;
do
{
printf("1) Ingresar valores de vectores\n");
printf("2) Generar aleatoriamente\n");
printf("3) Finalizar\n");
printf("Escoja Opcion : ");
scanf("%hd",&cas);
switch (cas)
{
case 1:
Ingresar();
cas=3;
break;
case 2:
do
{
printf("Ingrese tamaño del vector 1 (entre 1 y 100) :");
scanf("%d",&a);
printf("\n");
} while (a<0 || a>100);
Generar(1,a);
do
{
printf("Ingrese tamaño del vector 2 (entre 1 y 100) :");
scanf("%d",&a);
printf("\n");
} while (a<0 || a>100);
Generar(2,a);
cas=3;
break;
15
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

case 3:
printf("Adios\n");
break;
default:
printf("Opcion no valida\n\n");
break;
}
} while (cas!=3);
nm=m+n;
if(n!=0 && m!=0){
Unir();
OrdenarA();
OrdenarB();
OrdenarC();
Imprimir(1);
Imprimir(2);
Imprimir(3);
}else{
printf("Faltan valores para ingresar");
}
}
void OrdenarA()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = m / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (m - salto))
{
if (arreglo1[e - 1] > arreglo1[(e - 1) + salto])
{
auxi = arreglo1[(e - 1) + salto];
arreglo1[(e - 1) + salto] = arreglo1[e - 1];
arreglo1[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
16
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

void OrdenarB()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = n / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (n - salto))
{
if (arreglo2[e - 1] > arreglo2[(e - 1) + salto])
{
auxi = arreglo2[(e - 1) + salto];
arreglo2[(e - 1) + salto] = arreglo2[e - 1];
arreglo2[(e - 1)] = auxi;
sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void OrdenarC()
{
int salto = 0;
int sw = 0;
int auxi = 0;
int e = 0;
salto = nm / 2;
while (salto > 0)
{
sw = 1;
while (sw != 0)
{
sw = 0;
e = 1;
while (e <= (nm - salto))
{
if (arreglo3[e - 1] > arreglo3[(e - 1) + salto])
{
auxi = arreglo3[(e - 1) + salto];
arreglo3[(e - 1) + salto] = arreglo3[e - 1];
arreglo3[(e - 1)] = auxi;
17
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

sw = 1;
}
e++;
}
}
salto = salto / 2;
}
}
void Generar(short indice, short limite){
if(limite<0 || limite>100){
printf("El valor debe estar entre 1 y 100\n");
} else{
if(indice==1){
m = limite;
short i;
for (i = 0; i < limite; i++)
{
arreglo1[i]=rand()%901 + 100;
}
} else if(indice==2){
n = limite;
short i;
for (i = 0; i < limite; i++)
{
arreglo2[i]=rand()%901 + 100;
}
} else{
printf("Indice no reconocido\n");
}
}
}
void Ingresar(){
short maximo=0;
do
{
printf("Ingrese el tamano del vector 1 (entre 1 y 100) :");
scanf("%hd",&maximo);
} while (maximo<0 || maximo>100);
m = maximo;
short i;
for (i = 0; i < maximo; i++)
{
printf("Ingrese el elemento [%hd] del vector 1 : ",i+1);
scanf("%d",&arreglo1[i]);
}
printf("\n");
do
{
printf("Ingrese el tamano del vector 2 (entre 1 y 100) :");
scanf("%hd",&maximo);
18
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

} while (maximo<0 || maximo>100);


n = maximo;
for (i = 0; i < maximo; i++)
{
printf("Ingrese el elemento [%hd] del vector 2 : ", i+1);
scanf("%d",&arreglo2[i]);
}
printf("\n\n");
}
void Unir(){
short i;
for (i = 0; i < m; i++)
{
arreglo3[i]=arreglo1[i];
}
for (i = 0; i < n; i++)
{
arreglo3[m+i]=arreglo2[i];
}
}
void Imprimir(short indice){
void Imprimir(short indice){
if(indice==1){
printf("Vector 1\n");
short i;
for (i = 0; i < m; i++)
{
printf("%d\t",arreglo1[i]);
}
} else if(indice==2){
printf("Vector 2\n");
short i;
for (i = 0; i < n; i++)
{
printf("%d\t",arreglo2[i]);
}
}else{
printf("Vector 3\n");
short i;
for (i = 0; i < nm; i++)
{
printf("%d\t",arreglo3
[i]);
}
}
printf("\n");
}
PRUEBA DE ESCRITORIO
1) Ingresar valores de vectores
2) Generar aleatoriamente

19
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

3) Finalizar
Escoja Opcion : 1
Ingrese el tamano del vector 1 (entre 1 y 100) :3
Ingrese el elemento [1] del vector 1 : 4
Ingrese el elemento [2] del vector 1 : 5
Ingrese el elemento [3] del vector 1 : 6

Ingrese el tamano del vector 2 (entre 1 y 100) :3


Ingrese el elemento [1] del vector 2 : 7
Ingrese el elemento [2] del vector 2 : 8
Ingrese el elemento [3] del vector 2 : 9

Vector 1
4 5 6
Vector 2
7 8 9
Vector 3
4 5 6 7 8 9

--------------------------------
Process exited after 10.33 seconds with return value 0
Presione una tecla para continuar . . .

PRUEBA DE ESCRITORIO
1) Ingresar valores de vectores
2) Generar aleatoriamente
3) Finalizar
Escoja Opcion : 2
Ingrese tama±o del vector 1 (entre 1 y 100) :3

Ingrese tama±o del vector 2 (entre 1 y 100) :4

Vector 1
368 389 793
Vector 2
210 443 536 765
Vector 3
210 368 389 443 536 765 793

--------------------------------
Process exited after 9.688 seconds with return value 0
Presione una tecla para continuar . . .

PS5.11 Escribe un programa en el lenguaje C que almacene en un arreglo unidimensional


los primeros 30 números perfectos. Un número se considera perfecto si la suma de los
divisores, excepto él mismo, es igual al propio número. El 6, por ejemplo, es un número
perfecto.
CODIGO
#include <stdio.h>

20
Milena Roxana Quintana Román
Segundo Nivel
Biomedicina

int main(){
int perfecto[30];
int conteo=0;
int adi;
int n=5;
while (conteo<4)
{
adi = 0;
int i;
for (i = 2; i < n; i++)
{
if(n%i==0){
adi+=i;
}

if(adi>n){
i=n+1;
}
}
if(adi+1==n){
perfecto[conteo]=n;
conteo++;
}
n++;
}
printf("Lista de numeros\n");
short i;
for (i = 0; i < 5; i++)
{
printf("%d\t",perfecto[i]);
}
printf("\n");
}
PRUEBA DE ESCRITORIO
Lista de numeros
6 28 496 8128 0

--------------------------------
Process exited after 0.2614 seconds with return value 0
Presione una tecla para continuar . . .

21

También podría gustarte