C++. Mam taki program:
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n,a,b;
char tekst1[1000];
char tekst[1000];
cin.getline (tekst, 1000);
a=0;
cin>>n;
for (int j=0; tekst[j]!='\0'; j++) {
if(tekst[j]==32) {
a++;
}
}
for (int i=1; i<n; i++) {
cin.getline (tekst1, 1000);
b=0;
for (int w=0; tekst1[w]!='\0'; w++) {
if (tekst[w]==32) {
b++;
}
}
if (b>a) {
strcpy(tekst, tekst1);
a=b;
}
}
cout<<tekst1;
return 0;
}
W programie mam podawać ile chce wpisac zdan a następnie ma mi on wypisywać zdanie w którym jest najwięcej spacji. Problem w tym ze cos pokręciłam i jak dodałam cin>>n, aby mi wczytywało 1 zdanie- to jakos mi "jakby omija pierwsza pętlę. Proszę o pomoc jestem początkujące i nei zabardzo wiem jak to mam być. [proszę nei dawać jakichs wiecej znakow- bo ma byc tylko zpomocą tych... ;(] Z góry dzięki...
" Life is not a problem to be solved but a reality to be experienced! "
© Copyright 2013 - 2024 KUDO.TIPS - All rights reserved.
O wiele latwiej pisze sie to na stringach. Sprawdz czy ci pasuje jakby co pisz PW.
#include <iostream>
#include <string>
using namespace std;
int main(){
int n,spacja=0,spacja1=0;
string a,b;
cin >> n;
getline (cin,a);
getline (cin,a);
for(int i=0;i<a.size();i++)
{
if(a[i]==32) spacja++;
}
for(int i=1;i<n;i++)
{
getline (cin,b);
for(int j=0;j<b.size();j++)
{
if(b[j]==32) spacja1++;
}
if(spacja1>spacja)
{
spacja=spacja1;
a=b;
}
}
cout << a;
system("pause");
return 0;
}
Poprawiona twoja wersja
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int n,a=0,b=0;
char tekst1[1000];
char tekst[1000];
cin>>n;
cin.getline (tekst, 1000);//czyszczenie strumienia
cin.getline (tekst, 1000);
for (int j=0; tekst[j]!='\0'; j++)
{
if(tekst[j]==32) a++;
}
for (int i=1; i<n; i++)
{
cin.getline (tekst1, 1000);
for (int w=0; tekst1[w]!='\0'; w++)
{
if (tekst[w]==32) b++;
}
if (b>a)
{
strcpy(tekst, tekst1);
a=b;
}
}
cout<<tekst << endl;
system("pause");
return 0;
}