Exercice trés difficile sur les tableaux
Fermé
kafouri
Messages postés
7
Date d'inscription
samedi 6 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
-
6 déc. 2008 à 12:41
CHIHAB Yassine - 11 nov. 2013 à 12:00
CHIHAB Yassine - 11 nov. 2013 à 12:00
A voir également:
- Exercice tableau croisé dynamique
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- ERREUR nom du champ du tableau croisé dynamique non valide - Forum Excel
3 réponses
VOICI MA RÉPONSE AU LANGUAGE C: si vous avez une qst n'hésiter pas :)
#include <stdio.h>
#include <stdlib.h>
//another example: 11 444 2 7777 3 666
void longsequence(int T[],int n)
{
int indice=0,longueur=0,longueurTMP=1,i=0;//dans l exercice ils considère que l'indice(0)=1 ici indice0 = 0
for(i=0;i<n;i++)
{
if (T[i]==T[i+1]) /*=>*/ longueurTMP=longueurTMP+1;
else
{
if (longueur<longueurTMP)
{
longueur = longueurTMP;
indice=i-longueur+1;//i-(longueur-1) car longueur(0) = 1
}
longueurTMP=1;
}
}
printf("longeur = %d; indice = %d ",longueur,indice);
}
int main()
{
int T[15]={0},i=0,n=0; //15= max array size
/* array = ? */
printf("Please enter the array's size(max=15)");
scanf("%d",&n);
printf("Please set the array's value: \n");
for(i=0;i<n;i++)
{
printf("T[%d]= ",i);
scanf("%d",&T[i]);
}
longsequence(T,n);
return 0;
system("PAUSE");
}
//FEDERAL WAS HERE
//FROM MOROCCO
// ENJOY!
#include <stdio.h>
#include <stdlib.h>
//another example: 11 444 2 7777 3 666
void longsequence(int T[],int n)
{
int indice=0,longueur=0,longueurTMP=1,i=0;//dans l exercice ils considère que l'indice(0)=1 ici indice0 = 0
for(i=0;i<n;i++)
{
if (T[i]==T[i+1]) /*=>*/ longueurTMP=longueurTMP+1;
else
{
if (longueur<longueurTMP)
{
longueur = longueurTMP;
indice=i-longueur+1;//i-(longueur-1) car longueur(0) = 1
}
longueurTMP=1;
}
}
printf("longeur = %d; indice = %d ",longueur,indice);
}
int main()
{
int T[15]={0},i=0,n=0; //15= max array size
/* array = ? */
printf("Please enter the array's size(max=15)");
scanf("%d",&n);
printf("Please set the array's value: \n");
for(i=0;i<n;i++)
{
printf("T[%d]= ",i);
scanf("%d",&T[i]);
}
longsequence(T,n);
return 0;
system("PAUSE");
}
//FEDERAL WAS HERE
//FROM MOROCCO
// ENJOY!
lermite222
Messages postés
8724
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
6 déc. 2008 à 12:57
6 déc. 2008 à 12:57
Bonjour,
1°) Tu dit pas quel language pour "TON programme"
2°) Esssaye d'abord de résoudre le problème et ENSUITE, nous pourront peut-être t'aider à le mettre au point.
3°) CCM n'est pas un forum pour FAIRE les devoirs des étudiants.
A+
1°) Tu dit pas quel language pour "TON programme"
2°) Esssaye d'abord de résoudre le problème et ENSUITE, nous pourront peut-être t'aider à le mettre au point.
3°) CCM n'est pas un forum pour FAIRE les devoirs des étudiants.
A+
kafouri
Messages postés
7
Date d'inscription
samedi 6 décembre 2008
Statut
Membre
Dernière intervention
14 janvier 2009
6 déc. 2008 à 13:02
6 déc. 2008 à 13:02
Bonjour
voici ma proposition (écrite en langage Pascal)
uses wincrt;
type
tab=array[1..100] of integer;
var
m,v,t:tab;
j,i, p, nbmax,posi,nb,n:integer;
begin
write('siaisr N= ');
readln(n);
for i:=1 to n do
begin
write('T[',i,']=');
readln(t[i]);
end;
i:=1;
nb:=1;
repeat
nb:=nb+1;
i:=i+1;
until (t[i]<>t[i+1]);
j:=i+1;
nbmax:=1;
posi:=1;
repeat
if t[j]=t[j+1] then
begin
nbmax:=nbmax+1;
j:=j+1;
end;
p:=j;
until (t[j]<>t[j+1]) or (j>=n-1);
if nb>nbmax then
begin
nbmax:=nb;
p:=i;
posi:=1;
end
else
posi:=i+1;
writeln('la serie est: ',t[p], ' l''indice ',posi, ' la longueur est: ',nbmax);
end.
ce programme tourne correctement, mais il affiche dans tous les cas la série d'indice 2
Pouvez vous m'aider ?
voici ma proposition (écrite en langage Pascal)
uses wincrt;
type
tab=array[1..100] of integer;
var
m,v,t:tab;
j,i, p, nbmax,posi,nb,n:integer;
begin
write('siaisr N= ');
readln(n);
for i:=1 to n do
begin
write('T[',i,']=');
readln(t[i]);
end;
i:=1;
nb:=1;
repeat
nb:=nb+1;
i:=i+1;
until (t[i]<>t[i+1]);
j:=i+1;
nbmax:=1;
posi:=1;
repeat
if t[j]=t[j+1] then
begin
nbmax:=nbmax+1;
j:=j+1;
end;
p:=j;
until (t[j]<>t[j+1]) or (j>=n-1);
if nb>nbmax then
begin
nbmax:=nb;
p:=i;
posi:=1;
end
else
posi:=i+1;
writeln('la serie est: ',t[p], ' l''indice ',posi, ' la longueur est: ',nbmax);
end.
ce programme tourne correctement, mais il affiche dans tous les cas la série d'indice 2
Pouvez vous m'aider ?
#include <stdio.h>
#include <stdlib.h>
int main()
{
int t[100],i,n,m,s[100],in[100],l[100],j;
printf("donner la dimension \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n t[%d]= ",i+1);
scanf("%d",&t[i]);
}
for(i=0;i<n;i++)
{
printf("t[%d]= %d\t",i+1,t[i]);
}
s[0]=t[0];l[0]=0;in[0]=0;j=0;
for(i=0;i<n;i++)
{
if(t[i]==s[j]) l[j]=l[j]+1;
else {j++;in[j]=i;s[j]=t[i];l[j]=1;}
}
m=l[0];
for(i=0;i<3;i++)
{
if(l[i]>=m) {m=l[i]; n=i;}
}
printf("\nla série est %d elle commence a l'indice %d et elle est de longueur %d",s[n],in[n]+1,l[n]);
return 0;
}
#include <stdlib.h>
int main()
{
int t[100],i,n,m,s[100],in[100],l[100],j;
printf("donner la dimension \n");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n t[%d]= ",i+1);
scanf("%d",&t[i]);
}
for(i=0;i<n;i++)
{
printf("t[%d]= %d\t",i+1,t[i]);
}
s[0]=t[0];l[0]=0;in[0]=0;j=0;
for(i=0;i<n;i++)
{
if(t[i]==s[j]) l[j]=l[j]+1;
else {j++;in[j]=i;s[j]=t[i];l[j]=1;}
}
m=l[0];
for(i=0;i<3;i++)
{
if(l[i]>=m) {m=l[i]; n=i;}
}
printf("\nla série est %d elle commence a l'indice %d et elle est de longueur %d",s[n],in[n]+1,l[n]);
return 0;
}
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
main(){
int n,i,k=0,l=0,p,c,d=0,r=0,b=1;
printf("donnez la taille du tableau \n ");
scanf("%d",&n);
int *t;
t=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++){
printf("donnez elem t[%d] \n ",i);
scanf("%d",&t[i]);
}
p=t[0];
for(i=1;i<n;i++){
if(d!=2){
if(t[i]==p){
if(d==0){
k++;}
if(d==1){
r++;}
if(i==n-1){
goto a;}
continue;}
if(t[i]!=p){
if(i==n-1){
goto a;}
c=i;
p=t[i];
d++;
b++;
}
}else{
a : if(k<r){
l=c;
k=r;
d=1;
r=0;}
}
}
if(b>3){
printf("le plus grand serie est de %d son premier est indice est %d et son longeur est %d",t[l-k-1],l-k-1,k+1);}
else{
printf("le plus grand serie est de %d son premier est indice est %d et son longeur est %d",t[l],l,k+1);}
getch();
}
#include<conio.h>
#include<stdlib.h>
main(){
int n,i,k=0,l=0,p,c,d=0,r=0,b=1;
printf("donnez la taille du tableau \n ");
scanf("%d",&n);
int *t;
t=(int*)malloc(n*sizeof(int));
for(i=0;i<n;i++){
printf("donnez elem t[%d] \n ",i);
scanf("%d",&t[i]);
}
p=t[0];
for(i=1;i<n;i++){
if(d!=2){
if(t[i]==p){
if(d==0){
k++;}
if(d==1){
r++;}
if(i==n-1){
goto a;}
continue;}
if(t[i]!=p){
if(i==n-1){
goto a;}
c=i;
p=t[i];
d++;
b++;
}
}else{
a : if(k<r){
l=c;
k=r;
d=1;
r=0;}
}
}
if(b>3){
printf("le plus grand serie est de %d son premier est indice est %d et son longeur est %d",t[l-k-1],l-k-1,k+1);}
else{
printf("le plus grand serie est de %d son premier est indice est %d et son longeur est %d",t[l],l,k+1);}
getch();
}