Pomoc w zadaniu (Jezyk C)

0

Mamy listę 1000 elementów (ponumerowanych od 1 do 1000). Wykreślamy co siódmy element (tzn. element nr 7, 14 itd.). Po dojściu do końca listy kontynuujemy od jej początku omijając elementy już wykreślone. Procedurę prowadzimy aż zostanie 10 ostanich elementów. Jakie to elementy?

#include<stdio.h>
#define N 1000
int main()
{
int tab[N],i,nr,wykreslona,x;

nr=1;
wykreslona=0;
x=1;

for(i=0;i<N;++i) tab[i]=i+1;
{

for(i=6;i<N;i=i+7)
{
for(x=1;x<N;x++)
{
if(tab[i]==wykreslona)
i=i+1;
}
tab[i]=wykreslona;
}
}

for(i=0;i<N;i++)
{
if(tab[i]==0)
{
}
else
{
printf("%d ",tab[i]);
}
}
return(0);
}

0

slodkie to elementy. Jak cukier (napisz program, skompiluj i zobacz jakie to liczby...)

3

Na takie pytanie jest tylko jedna prawidlowa odpowiedz: niewykreslone.

0

Na to zadanie nie trzeba pisać programu.
Da się wyliczyć matematycznie.

0

Podpowie ktoś co dopisać lub co zmienić ?

0

Aby coś podpowiedzieć trzeba wiedzieć czego chcesz.
A żeby wiedzieć czego chcesz to bez odpowiedzi na pytanie w komentarzy do pierwszego postu - ani rusz.

0

ma wykreślać co 7 element
7, 14 , 21....994,1 , 9 ,17,25,33,

ma zacząć od 7 później 14 itd. dojdzie 994 czyli następna liczba to 1 poniewaz 7 element to 994+7=1001 ale u nas sie koncz na 1000 a mamy w zadani ze dojściu do końca listy kontynuujemy i zaczynamy omijac elementy już wykreślone

0
#include <iostream>
using namespace std;

int main()
  {
   int tb[1001],p=0,q=0;
   for(int i=0;i<1000;++i) tb[i]=i+1;
   tb[1000]=1;
   for(int k=10;k<1000;++k)
     {
      for(int i=0;i<7;++i) p=tb[q=p];      
      tb[q]=tb[p];
      tb[p]=0;
      p=q;
     }
   for(int i=1;i<=1000;++i) if(tb[i]) cout<<" "<<i;
   return 0;        
  }
0

Wolę rozwiązanie zgodne ze sformułowaniem, tzn. wędrówka w kółko po tablicy. http://ideone.com/JKtSwv

1 użytkowników online, w tym zalogowanych: 0, gości: 1