• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Napisanie kodu

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
281 wizyt
pytanie zadane 7 maja 2021 w C i C++ przez MuratPasza Nowicjusz (120 p.)
zamknięte 10 maja 2021 przez MuratPasza

Witam. 

#include <iostream>
#include <time.h>
#include <windows.h>

using namespace std;
int losowa[22];
int i;
int main()
{
srand(time(NULL))

 

 

komentarz zamknięcia: Problem zostal rozwiazany
komentarz 7 maja 2021 przez urbix01 Gaduła (3,290 p.)
chcesz żeby przepisać Ci ten kod na C?
komentarz 7 maja 2021 przez urbix01 Gaduła (3,290 p.)
edycja 7 maja 2021 przez urbix01
Jeżeli tak to wszystkie "cout" zmień na printf("Tekst to wyświetlenie %d ", zmienna); gdzie %d oznacza w którym miejscu w tekście ma być wyświetlona liczba całkowita a zamienna to po prostu jaka zmienna ma być wstawiona w miejsce %d. Wszystkie "cin" zmień na scanf("%d", &zmienna) gdzie %d informuje że ma zostać wczytana liczba całkowita a &zmienna do jakiej zmiennej ma być przypisana ta wartość. Libke <iostream> zamień na <stdio.h> a <string> na <string.h> a jak to nie pomoże to zamiast zmienej typu string użyj tablicy char. Reszta bez zmian
komentarz 7 maja 2021 przez MuratPasza Nowicjusz (120 p.)

Właśnie jestem w trakcie zmieniania tak jak mówisz, tylko zatrzymałem się na tym etapie i nie jestem pewien co tutaj zrobić. 

cin>>a;//wczytuje liczbe do stringa
len = a.length(); //dlugosc stringa, czyli ilosc cyfr w liczbie
cyfra = atoi(a.c_str());//string do char i char do int.
}
int* temp = new int[len];//tablica o dlugosci cyfr w liczbie

Chodzi dokładnie o cyfra = atoi(a.c_str()). W C nie ma stringow, wiec mam po prostu zmienic to na tablice char?

komentarz 7 maja 2021 przez urbix01 Gaduła (3,290 p.)
Wychodzi na to że nie masz innego wyjścia
komentarz 7 maja 2021 przez urbix01 Gaduła (3,290 p.)
edycja 7 maja 2021 przez urbix01

@MuratPasza, jak się uda to daj znać i jeżeli masz wolną chwilę to zajrzyj na moją stronkę. Starałem się tam opisać podstawy C w jak najprostszy sposób, więc może Cię to zainteresuje. www.trzykody.pl

komentarz 7 maja 2021 przez MuratPasza Nowicjusz (120 p.)

Zatrzymalem sie jeszcze w jednym momencie, mianowicie przesunięciach. 

cout<<setki[temp[0]]<<dziesiatki[temp[1]]<<jednosci[temp[2]];

Jak moge to zmienic? Szukam w internecie i nie moge nic znalezc na ten temat

komentarz 7 maja 2021 przez MuratPasza Nowicjusz (120 p.)

Zmieniłem według tego jak mówiłes, ale nie dziala to do konca dobrze. Po wybraniu czy chce skonwertowac liczby z arabskiego na rzymskie lub na odwrot, cmd wyłącza się. 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


int trans(char a){
switch ( a ){
case 'X':return 10;break;
case 'I':return 1;break;
case 'V':return 5;break;
case 'L':return 50;break;
case 'C':return 100;break;
case 'D':return 500;break;
case 'M':return 1000;break;
default: return 0; break;
}
}
int main()
{
char jednosci[12][255] = {" ", "I", "II", "III", "IV", "V", "VI",
"VII", "VIII", "IX", '\0'};
char dziesiatki[12][255] = {" ", "X", "XX", "XXX", "XL", "L", "LX",
"LXX", "LXXX", "XC", '\0'};
char setki[12][255] = {" ", "C", "CC", "CCC", "CD", "M", "MC", "MCC",
"MCCC", "CM", '\0'};
char tysiace[12][255] = {" ", "M", "MM", "MMM", '\0'};

printf("Wybierz 1 dla konwersji arabska->rzymska i 2 dla rzymska->arabska: ");
int wybor=0;
scanf("%d", &wybor);
if(wybor==1){
printf("Podaj cyfre arabska (nie wieksza niz 3999): ");
char a[10];
int cyfra=0;
int len;
while(!cyfra){ // sprawdzenie czy podana jest liczba
scanf("%c",&a);//wczytuje liczbe do stringa
len = strlen(a); //dlugosc stringa, czyli ilosc cyfr w liczbie
cyfra = atoi(a[10]);//string do char i char do int.
}
int* temp = (char *) malloc(sizeof(char) * 10);;//tablica o dlugosci cyfr w liczbie
int i=len-1;// iterator pomniejszony o jeden (zaczynamy od o tablica)
int modul=10;// dzielenie przez 10
do {
temp[i] = cyfra%modul;
cyfra = cyfra/modul;
i--;
} while (cyfra>0);
//petla przepisuje po jednej cyfrze z liczby i wrzuca je do tablicy
printf("Liczba arabska zapisana w systemie rzymskim: ");
//4 mozliwosci dlugosci liczby, wiec 4 ify. Mozna to zrobic tez petla.
if(len == 4) printf("%c<<%c<<%c<<%c", tysiace[temp[0]], setki[temp[1]], dziesiatki[temp[2]], jednosci[temp[3]] );

if(len == 3)
printf("%c<<%c<<%c", setki[temp[0]], dziesiatki[temp[1]], jednosci[temp[2]]);

if(len == 2)
printf("%c<<%c", dziesiatki[temp[0]], jednosci[temp[1]]);

if(len == 1)
printf("%c", jednosci[temp[1]]);
free (temp);

}
if(wybor==2){

char a[10];
printf("Podaj cyfre w systemie rzymskim: ");
scanf("%c", &a);
int element=0, wynik=0, temp=0, i=0;
for (i=0;i<strlen(a);++i)
{
element = trans(a[i]);
if(i<strlen(a)-1){
temp=trans(a[i+1]);
}
if (temp>element)
{
element =0-element;
}
wynik=element+wynik;
}
printf("%d", wynik);
}
return 0;
}

 

1
komentarz 8 maja 2021 przez Oscar Nałogowiec (29,340 p.)
edycja 8 maja 2021 przez Oscar

@MuratPasza,
 W tym kontekście << to nie przesunięcie bitowe, to właśnie wypisanie i należy to zamienić na printf.

printf("%s%s%s", setki[temp[0]], dziesiatki[temp[1]], jednosci[temp[2]]);

A jeśli chodzi o zamianę wartości na "cyfry rzymskie", to ostatnio pojawił się taki temat i tam podano kod który w tą stronę działał. Kluczem jest wydzielenie kilku dodatkowych wartości takich jak 9, 90, 900 itp, które konwertowane są jako dwa znaki w notacji rzymskiej.

komentarz 9 maja 2021 przez VBService Ekspert (256,320 p.)

to ostatnio pojawił się taki temat

Zamiana liczb rzymskich na arabskie

Podobne pytania

–2 głosów
1 odpowiedź 132 wizyt
pytanie zadane 14 października w C i C++ przez lanervla Nowicjusz (120 p.)
+1 głos
1 odpowiedź 438 wizyt
0 głosów
1 odpowiedź 688 wizyt
pytanie zadane 12 grudnia 2017 w HTML i CSS przez MJ36 Użytkownik (670 p.)

93,187 zapytań

142,201 odpowiedzi

322,012 komentarzy

62,514 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2127p. - dia-Chann
  2. 2092p. - Łukasz Piwowar
  3. 2079p. - Łukasz Eckert
  4. 2037p. - Tomasz Bielak
  5. 2006p. - Michal Drewniak
  6. 2006p. - rucin93
  7. 2005p. - Łukasz Siedlecki
  8. 1964p. - CC PL
  9. 1946p. - Adrian Wieprzkowicz
  10. 1901p. - Mikbac
  11. 1744p. - rafalszastok
  12. 1734p. - Anonim 3619784
  13. 1586p. - Dawid128
  14. 1520p. - Marcin Putra
  15. 1480p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...