[c] potęga 2

marek12
Użytkownik
Użytkownik
Posty: 696
Rejestracja: 5 lut 2008, o 15:38
Płeć: Mężczyzna
Lokalizacja: marki
Podziękował: 165 razy
Pomógł: 20 razy

[c] potęga 2

Post autor: marek12 »

Napisać program który wypełnia 10-cio elementową tablicę typu integer kolejnymi potęgami liczby 2, a następnie wyświetla tą tablicę na ekran.
Jest tylko jeden szkopuł jak napisać algorytm wyliczający że 2 do potęgi 0 równa się 1.
Nie chciałem używać funkcji pow(x,y) z modułu matematycznego lecz chciałem utworzyć własny algorytm który by wyliczał że 2 do potęgi 0 jest 1
Awatar użytkownika
jarzabek89
Użytkownik
Użytkownik
Posty: 1337
Rejestracja: 11 lis 2007, o 21:36
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Podziękował: 4 razy
Pomógł: 181 razy

[c] potęga 2

Post autor: jarzabek89 »

Ja bym to napisał rekurencją.
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[c] potęga 2

Post autor: matshadow »

Kod: Zaznacz cały

#include<stdio.h>
int main()
{
    int tab[10],i;
    tab[0]=1;
    for(i=1;i<10;i++)
     tab[i]=tab[i-1]*2;
    for(i=0;i<10;i++)
      printf("%d
",tab[i]);
    return(0);
}
marek12
Użytkownik
Użytkownik
Posty: 696
Rejestracja: 5 lut 2008, o 15:38
Płeć: Mężczyzna
Lokalizacja: marki
Podziękował: 165 razy
Pomógł: 20 razy

[c] potęga 2

Post autor: marek12 »

a jak zmienić ten program żeby wyliczał tez z liczb rzeczywistych a nie tylko całkowitych?

Kod: Zaznacz cały

#include <stdio.h>

#define ROZMIAR 3  /*Deklarujesz wielkosc talbicy*/

main(void)  {
  int n[ROZMIAR], i, min, max;
  max=0;
  printf ("Wpisz %d liczb rzeczywistych: ", ROZMIAR);
  for (i=0; i<ROZMIAR; ++i) {
    scanf("%d", &n[i]);
    if (min >= n[i])  { 
      min=n[i];
    }
    else if (max <= n[i])
     max=n[i];
  }
  printf ("Najmniejsza liczba to:	%d
Najwieksza liczba to:	%d
", min, max);
  system("pause");
  return 0;
}
matshadow
Użytkownik
Użytkownik
Posty: 941
Rejestracja: 17 gru 2007, o 21:48
Płeć: Mężczyzna
Lokalizacja: Kingdom Hearts
Podziękował: 6 razy
Pomógł: 222 razy

[c] potęga 2

Post autor: matshadow »

Kod: Zaznacz cały

#include <stdio.h>
#define ROZMIAR 3  /*Deklarujesz wielkosc talbicy*/

int main(void)
{
  int i;
  float n[ROZMIAR], min=1000000000, max=0;
  printf ("Wpisz %d liczb rzeczywistych: ", ROZMIAR);
  for (i=0; i<ROZMIAR; ++i) {
    scanf("%f", &n[i]);
    if (min >= n[i])  {
      min=n[i];
    }
    else if (max <= n[i])
     max=n[i];
  }
  printf ("Najmniejsza liczba to:	%f
Najwieksza liczba to:	%f
", min, max);
  return 0;
}
Xitami

[c] potęga 2

Post autor: Xitami »

Kod: Zaznacz cały

for (i=0; i<10; t[i]=1<<i, i++)
min=100000000; max=0
a co z ujemnymi, albo wielkimi?

Kod: Zaznacz cały

scanf("%d", &n);
if(n!=0) {
    scanf("%f", &min);max=min;
    while(n-->1){
        scanf("%f", &r);
        if(r>max) max=r;
        else if (r<min) min=r;
    }
    printf("%f %f", min, max);
}
MGT
Użytkownik
Użytkownik
Posty: 107
Rejestracja: 7 lis 2006, o 12:03
Płeć: Mężczyzna
Lokalizacja: Gdańsk
Pomógł: 20 razy

[c] potęga 2

Post autor: MGT »

Inne, efektywne rozwiązanie pierwotnego problemu, w oparciu o przesunięcia bitowe.

Kod: Zaznacz cały

#include <stdio.h>
#define ILE 10

int main(void)
{
int tablica[ILE] = {0}, i=-1;

while(++i<ILE) tablica[i] = 1<<i;

for(i=0;i<ILE;i++) printf("%d ",tablica[i]);

return 0;
}
ODPOWIEDZ