Zadanie z C
-
- Użytkownik
- Posty: 105
- Rejestracja: 2 lis 2007, o 21:01
- Płeć: Mężczyzna
- Lokalizacja: Łódź
- Podziękował: 14 razy
- Pomógł: 4 razy
Zadanie z C
Napisac program w C pobierajacy od uzytkownika liczbe naturalna, tworzacy tablice zlozona z cyfr tej liczby i na jej podstawie obliczajacy sume cyfr tej liczby.
-
- Użytkownik
- Posty: 57
- Rejestracja: 22 lip 2006, o 20:50
- Płeć: Mężczyzna
- Lokalizacja: Iława
- Podziękował: 3 razy
Zadanie z C
Przed Chwilą napisałem coś takiego. Ten program będzie sumał 2 liczby n razy
#include
#include
#include
using namespace std;
int main(void){
int n;
string liczba1, liczba2;
cin >> liczba1;
cin >> liczba2;
cin >> n;
for(int i=0;i= 0; i--)
s = 0; i--)
s = liczba2.size()? liczba1.size() : liczba2.size());
stringstream suma;
int pod, dod = 0;
for(int i = 0; i < max; i++){
if(liczba1.size() > i && liczba2.size() > i){
pod = (char)liczba1-48 + (char)liczba2-48;
}
else{
pod = (liczba1.size() > liczba2.size() ? (char)liczba1-48 : (char)liczba2-48);
}
pod+=dod;
if(pod > 9){
dod = 1;
suma
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
Zadanie z C
To mialo byc w C a nie w Cpp Ja to widze jakos tak:
Ja to widze jakos tak Na dwoch tablicach, zeby bylo estetycznie POZDRO
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int liczba,x;
int rozmiar,suma;
char Cliczba[30];
int *tab=NULL;
printf("Podaj liczbe naturalna: ");
if( scanf("%d",&liczba)==1)
if(liczba>0)
{
sprintf(Cliczba, "%i", liczba);
rozmiar=strlen(Cliczba);
tab=(int*)malloc(rozmiar * sizeof(int));
if(tab)
{
suma=0;
for(x=0;x<rozmiar;x++)
{
tab[x]=(int) (Cliczba[x]-'0');
printf("%d: %d\n",x,tab[x]);
suma+=tab[x];
}
printf("Suma: %d",suma);
}
return 0;
}
printf("Niepoprawne dane!\n");
return 0;
}
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
Zadanie z C
W sumie, aby liczba mogła być nieco większa niż int czy long może lepiej od razu użyć tablicy znaków ?
Kod: Zaznacz cały
#include <stdio.h>
int main() {
char sliczba[80] = "";
int i, isuma = 0;
printf("Podaj liczbe do 80 znakow ");
gets(sliczba);
for(i = 0; sliczba[i]; i++)
isuma += (sliczba[i] - '0');
printf("Suma cyfr liczby %s wynosi %i", sliczba, isuma);
return 0;
}
Ostatnio zmieniony 15 sty 2008, o 00:12 przez smiechowiec, łącznie zmieniany 1 raz.
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
Zadanie z C
Ja jeszcze proponuje uzywac fgets zamiast gets, bo fgets zapewni ze nie przepelnisz dostepnej tablicy A gets bierze i wczytuje caly czas nawet jak sie przepelni. POZDRO
-
- Użytkownik
- Posty: 374
- Rejestracja: 21 cze 2007, o 11:28
- Płeć: Mężczyzna
- Lokalizacja: Łostowice
- Pomógł: 146 razy
Zadanie z C
fgets w porównaniu do gets ma jedną niemiłą własność, otóż dopisuje do łańcucha znak końca linii LF lub CR LF w zależności od systemu. W związku z tym trzeba ten dodatek czasem usunąć
-
- Użytkownik
- Posty: 6607
- Rejestracja: 16 sty 2007, o 19:42
- Płeć: Mężczyzna
- Podziękował: 119 razy
- Pomógł: 1823 razy
Zadanie z C
A no rzeczywiscie. Tego nie zauwazylem Zawsze mozna pokombinowac i usunac ten znaczek. POZDROsmiechowiec pisze:fgets w porównaniu do gets ma jedną niemiłą własność, otóż dopisuje do łańcucha znak końca linii LF lub CR LF w zależności od systemu. W związku z tym trzeba ten dodatek czasem usunąć
Zadanie z C
19Radek88 pisze:Napisac program w C [...]
Kod: Zaznacz cały
#include <stdio.h>
19Radek88 pisze:[...]pobierajacy od uzytkownika liczbe naturalna[...]
Kod: Zaznacz cały
int n; scanf("%d",&n);
19Radek88 pisze:[...]tworzacy tablice zlozona z cyfr tej liczby[...]
Kod: Zaznacz cały
char t[21]; int i=0;
while (n>0) {
t[i++]=n%10+'0';
n/=10; }
t[i]=\0;
19Radek88 pisze:[...]na jej podstawie obliczajacy sume cyfr tej liczby.
Kod: Zaznacz cały
suma=0;
i=0;
while (t[i])
suma+=t[i++]-'0';
-
- Użytkownik
- Posty: 15
- Rejestracja: 4 sty 2008, o 19:09
- Płeć: Mężczyzna
- Lokalizacja: Milanówek
- Podziękował: 1 raz
- Pomógł: 3 razy
Zadanie z C
Trik na rozłożenie liczby na cyfry polega na tym :
-pobierasz liczbe
-kopiujesz ja do innej zmiennej
-kopia=dzielisz kopie całkowicie przez 10 [ masz liczbę krotszą o ostatnią cyfrę ]
-dzielisz liczbe przez skrocona kopie i masz ostatnią cyfre do wpisania do tabeli i tak w kolko.
Ale jak juz sa wskazniki to faktycznie moze i ich uzycie bedzie prostsze.
Sorry jeżeli już ktoś tak podał.
-pobierasz liczbe
-kopiujesz ja do innej zmiennej
-kopia=dzielisz kopie całkowicie przez 10 [ masz liczbę krotszą o ostatnią cyfrę ]
-dzielisz liczbe przez skrocona kopie i masz ostatnią cyfre do wpisania do tabeli i tak w kolko.
Ale jak juz sa wskazniki to faktycznie moze i ich uzycie bedzie prostsze.
Sorry jeżeli już ktoś tak podał.