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

Znów problem z c, tabela, define.

Object Storage Arubacloud
0 głosów
213 wizyt
pytanie zadane 15 listopada 2019 w C i C++ przez Mała Mi Początkujący (270 p.)
#include <stdio.h>
#define C_CONST 299792458.

int main()
{
    char format[] = "%10s %30g %10s %s\n";
   printf("Tabela stalych fizycznych\n");
   printf(format, "nazwa, wartosc, jednostka, opis\n");
   printf(format,"%g, m/s","predkosc swiatla\n", C_CONST);
   printf(format,"eps",8.85418781710e-12,"C^2/N/m^2","przenikalnosc elektromagnetyczna");
   printf("c      %g             m/s          predkosc swiatla w prozni\n",C_CONST);
   printf("cos    8.85418781710e-12     C2/Nm2       przenikalnosc elektromagnetyczna\n");
   printf("e      1,602 177 33e-19      C            ladunek elementarny\n");
   printf("h      6.6260697930e-34      J*s          stala plancka\n");
   printf("me     9,109 3897e-31        kg           masa elektronu\n");

   return 0;
}

Hej, robię takie cudo. Mam wrzucić wszystko w tabelę, definiować stałe, itp., itd. Tak, jak w "c". Ale już teraz wyświetla mi TYLKO "tabela stałych fizycznych". Dlaczego? 

komentarz 15 listopada 2019 przez tkz Nałogowiec (42,000 p.)

#include <stdio.h>
#define C_CONST 299792458.
 
int main()
{
    char format[] = "%10d %30d %10d %d\n";
   printf("Tabela stalych fizycznych\n");
   printf(format, "nazwa, wartosc, jednostka, opis\n");
   printf(format,"%g, m/s","predkosc swiatla\n", C_CONST);
   printf(format,"eps",8.85418781710e-12,"C^2/N/m^2","przenikalnosc elektromagnetyczna");
   printf("c      %g             m/s          predkosc swiatla w prozni\n",C_CONST);
   printf("cos    8.85418781710e-12     C2/Nm2       przenikalnosc elektromagnetyczna\n");
   printf("e      1,602 177 33e-19      C            ladunek elementarny\n");
   printf("h      6.6260697930e-34      J*s          stala plancka\n");
   printf("me     9,109 3897e-31        kg           masa elektronu\n");
 
   return 0;
}

cpp.sh/3plin

Kompilator c++, ale chyba działa. Zmień format http://www.c4learn.com/c-programming/c-formatting-printf/

komentarz 15 listopada 2019 przez Mała Mi Początkujący (270 p.)
przeniesione 16 listopada 2019 przez draghan
Słucham? ;-;

2 odpowiedzi

+1 głos
odpowiedź 15 listopada 2019 przez Michałełe Nałogowiec (25,600 p.)

Witam

Jeśli w C chcemy coś wypisać na ekranie używamy printf. Źle jednak są dane argumenty w Twoim przypadku.

printf( "nazwa, wartosc, jednostka, opis\n");

Czyli najpierw podajesz tekst jaki chcesz wypisać, a w przypadku gdy chcesz w jakimś miejscu wypisać zmienną w tekście wpisujesz odpowienią literkę po % dla typu tej zmiennej - np. ( jeszcze w #define C_CONST usuń kropkę na końcu)

  printf( "Zmienna C_CONST: %i", C_CONST);

Tutaj jest lista jaką literkę trzeba wpisać dla danego typu.

char format[] = "%10d %30d %10d %d\n";

Tutaj widzę ,że coś kombinujesz ale nie rozumiem co to ma robić, odezwij się w komentarzu

komentarz 16 listopada 2019 przez tkz Nałogowiec (42,000 p.)

jeszcze w #define C_CONST usuń kropkę na końcu

Nie, bo chce wyświetlić zmiennoprzecinkową, po to jest również %g.

 

komentarz 21 listopada 2019 przez Mała Mi Początkujący (270 p.)

@Michałełe, chcę zrobić tabelę, te cyfry mówią, ile ma znaków. 

 

0 głosów
odpowiedź 16 listopada 2019 przez mokrowski Mędrzec (155,460 p.)
edycja 16 listopada 2019 przez mokrowski

Poczytaj o formatowaniu w printf().

Bardzo elementarne rozwiązanie z minimalną poprawką (co do eps i cos to już sam(a) sprawdź co masz na myśli):
 

#include <stdio.h>
#define C_CONST 299792458.

int main(void)
{
   const char header_format[] = "%-7s%-22s%-13s%s\n";
   const char data_format[]  = "%-7s%-22.10g%-13s%s\n";
   printf("Tabela stalych fizycznych\n");
   printf(header_format, "nazwa", "wartosc", "jednostka", "opis");
   printf(data_format, "c",   C_CONST,            "m/s",       "predkosc swialta");
   printf(data_format, "eps", 8.85418781710e-12 , "C^2/N/m^2", "przenikalnosc elektromagnetyczna");
   printf(data_format, "e",   1.60217733e-19,     "C",         "ladunek elementarny");
   printf(data_format, "h",   6.6260697930e-34,   "J*s",       "stala plancka");
   printf(data_format, "me",  9.1093897e-31,      "kg",        "masa elektronu");

   return 0;
}

 

Podobne pytania

0 głosów
1 odpowiedź 361 wizyt
0 głosów
1 odpowiedź 209 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...