Mam takie zadania do zrobienia. Ponizszy program działa ale nie pokazuje żadnych wynikow w konsoli. Nie rozumiem gdzie popełniłem błąd.
zapisać i przetestować w programie własne funkcje:
-
int len(const char* napis)
zwracającą długość danego napisu napis, np.len("abc") -> 3
, -
int cmp(const char* napis1, const char* napis2)
porównującą leksykograficznie dwa napisy, zwracającą0
jeśli napisy są identyczne,-1
jeślinapis1
jest wcześniejszy niżnapis2
,+1
jeślinapis1
jest późniejszy, np.cmp("bbc", "abcd") -> 1
,cmp("abcde", "b") -> -1
, -
int norepdig(const char* napis)
zwracającą ilość niepowtarzających się cyfr, występujących w napisienapis
, np.norepdig("ab3c4d3a1") -> 2
.
#include <iostream>
#include <cmath>
using namespace std;
int len(const char* napis)
{
int i;
for (i = 0; napis!='\0'; ++i);
return i;
}
int cmp(const char* napis1, const char* napis2)
{
int i;
for(i=0;i<len(napis1);i++)
if (napis1!=napis2) break;
if(i==len(napis1)) return 0;
if (napis1>napis2) return 1;
return -1;
}
int norepdig(const char* napis)
{
int temp=len(napis),*tab=new int[temp],i,j;
for(i=0;i<temp;i++) tab[i]=0;
for(i=0;i<temp;++i)
{
for(j=0;j<i;++j)
if(napis[i]==napis[j]) break;
tab[j]++;
}
for(i=0,j=0;i<temp;i++) if(tab[i]==1) j++;
delete[] tab;
return j;
}
int main()
{
const char *napis= "blabla";
const char *napis1= "abcdef" ;
const char *napis2= "qwerty";
cout << endl; len(napis) ; cout << endl;
cout << endl; cmp(napis1,napis2) ; cout << endl;
cout << endl; norepdig(napis) ; cout << endl;
return 0;
}