Subida y Bajada
Publicado por antonio (5 intervenciones) el 22/01/2007 14:54:55
El codigo debe de contar cuantas veces cambia de sentido un vector.
Pero lo cuenta mal.
#include <stdio.h>
#include <stdlib.h>
#define N 10
void bajada(int T_Vector[], int a, int b);
void subida(int T_Vector[], int a, int b)
{
int i;
for(i=a;i<N;i++)
{
if(T_Vector[i]<T_Vector[i+1] && T_Vector[i+1]!=N)
{
bajada(T_Vector,i+1,b+1);
break;
}
}
printf("%i", b);
}
void bajada(int T_Vector[], int a, int b)
{
int i;
for(i=a;i<N;i++)
{
if(T_Vector[i]>T_Vector[i+1] && T_Vector[i+1]!=N)
{
subida(T_Vector,i+1,b+1);
break;
}
}
}
int main()
{
int T_Vector[N];
int i,j,b;
i=1;
b=0;
for(j=0;j<N;j++)
{
printf("Dato:\n");
scanf("%d", &T_Vector[j]);
}
if(T_Vector[0]>T_Vector[1])
{
bajada(T_Vector,i,b);
}
else
{
subida(T_Vector,i,b);
}
system("pause");
}
Pero lo cuenta mal.
#include <stdio.h>
#include <stdlib.h>
#define N 10
void bajada(int T_Vector[], int a, int b);
void subida(int T_Vector[], int a, int b)
{
int i;
for(i=a;i<N;i++)
{
if(T_Vector[i]<T_Vector[i+1] && T_Vector[i+1]!=N)
{
bajada(T_Vector,i+1,b+1);
break;
}
}
printf("%i", b);
}
void bajada(int T_Vector[], int a, int b)
{
int i;
for(i=a;i<N;i++)
{
if(T_Vector[i]>T_Vector[i+1] && T_Vector[i+1]!=N)
{
subida(T_Vector,i+1,b+1);
break;
}
}
}
int main()
{
int T_Vector[N];
int i,j,b;
i=1;
b=0;
for(j=0;j<N;j++)
{
printf("Dato:\n");
scanf("%d", &T_Vector[j]);
}
if(T_Vector[0]>T_Vector[1])
{
bajada(T_Vector,i,b);
}
else
{
subida(T_Vector,i,b);
}
system("pause");
}
Valora esta pregunta


0