Skip to content

Instantly share code, notes, and snippets.

@jakoss
Created October 18, 2013 12:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jakoss/7041000 to your computer and use it in GitHub Desktop.
Save jakoss/7041000 to your computer and use it in GitHub Desktop.
#include <iostream>
using namespace std;
void sumakontrolna(char * pakiet, long& suma, int n = 5){
for(int i = 0; i < n; i++)
suma += pakiet[i];
}
void sumakontrolna(int liczba, long& suma){
int temp = liczba;
while(1){
int cyfra = temp % 10;
suma += cyfra;
if(temp > 10){
temp /= 10;
}else{
break;
}
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char ciag[50] = {0};
cout << "Podaj ciag znakow (maksymalnie 50): ";
cin.getline(ciag, 50);
long suma = 0;
char* p;
long liczba = strtol(ciag, &p, 10);
if(*p){
//podany ciąg nie jest liczbą
char * pakiet = new char[5];
char *begin = pakiet;
char *end = begin + sizeof(pakiet);
fill(begin, end, 0);
for(int i = 0; i < 50; i++){
if((i % 5 == 0) && (i != 0)){
sumakontrolna(pakiet, suma);
char *begin = pakiet;
char *end = begin + sizeof(pakiet);
fill(begin, end, 0);
}
pakiet[i % 5] = ciag[i];
}
delete [] pakiet;
}else{
//podany ciąg jest liczbą
sumakontrolna(liczba, suma);
}
cout << "Suma kontrolna: " << suma << endl;
cin.get();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment