Zadanie. Wprowadzenie danych

0

Witam mam problem. Otóż wykonuje do szkoły pewne cwiczenie i o dziwo nie działa. program sam w sobie działa bo jest prosty lecz mam problem z iloscia danych. do 100 000 działało ale dla 1 000 000 już nie. cos mysle z tablicami ale nie działa

 #include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<new>
#include<fstream>
using namespace std;
int main()
{

long long int a=10000000; // deklaruje sobie a bo taki warunek musi program spełniac ( i to mi stworzyło problem) long long int dobry czy starczy sam long int ? 
int * darek=new int[a]; // tablice dynamiczne
int * jarek=new int[a];
int * marek=new int[a];
for(long int i=0;i<a;i++) // zeruje tablice. A czemu ? Bo z tego co wiem to w nie wprowadzone miajsca zostanie dana losowa wartosc.
{
	darek[i]=0;
	jarek[i]=0;
	marek[i]=0;
}
/*
Zastanawiam sie własnie jak wprowadzic wartosc. 
 cin.getline(darek ,a); 
  cin.getline(darek[0] ,a); 
cin>>darek;
cin>>darek[0];
na takie sposoby próbowałem działac lecz nie mam pojecia bo nic nie działa z tego. 
*/
long long int i=0;
int suma=0;
do
{
if(darek[i]!=jarek[i])
suma++;
if(darek[i]!=marek[i])
suma++;
i++;	
}while(darek[i]!=0); // pętla kluczowa dla programu ale na tą chwilę nie ważna.
cout<<suma;


        cin.ignore();
        getchar();
        return 0;
    }
1

Nie wiem co Ty w ogóle kombinujesz (z ręki pisane, mogą być błędy):

#include <iostream>
using namespace std;

int main()
{
  ios_base::sync_with_stdio(false); // zeby szybciej strumienie dzialaly - jesli korzystasz z printf/scanf to wywal ta linie
  int a = 10000000;
  int suma = 0;
  for (int i = 0; i < a; i++)
  {
    int darek, jarek, marek;
    cin >> darek >> jarek >> marek;
    if (darek != jarek) suma++;
    if (darek != marek) suma++;
  }
  cout << suma;
  return 0;
}

jeśli koniecznie musisz mieć tablice to tak:

int* tab = new int[150]; // nie zerujesz tego jesli te dane pozniej wczytujesz bo na cholere
for (int i = 0; i < 150; i++)
{
  cin >> tab[i];
}
// jakies inne operacje na tablicy
delete[] tab;
0

Gdybym pracował na intach to by było dorbe. ale po pierwsze wprowadzam znaki więc muszę z charem radzic sobie, po drugie każdy marek, darek i jarek ma byc podany w 1 lini.
poza tym ni moze byc na forze bo nie zawsze będzie maksimum danych.

0

mówisz, że nie pracujesz na intach a tworzysz tablicę intów i piszesz, i że nie możesz jej wczytać:

int * darek=new int[a];

zrób z tego:
string* darek;

reszta kodu nawet się nie zmieni

0

@akszil, przecież int'a @krwq poprawnie wydedukował z twojego kodu, żadnych char'ów w twoim kodzie nie ma. Podaj pełną treść zadania.

0

w próbie samotnego zrobienia tego tak się poplonałem że zapomniałem zmienic.

ile wynosi maksymalna liczba punktów jaką mogą razem uzyskać, biorąc pod uwagę fakt, że wszystkie odpowiedzi Darka są błędne.
Wejście składa się z trzech linii. W każdej z nich znajduje się jeden wyraz składający się wyłącznie z liter A, B, C lub D. Litera i-ta w kolejności określa odpowiedź na i-te pytanie w teście. Liczba pytań nie przekracza 106. Pierwszy wyraz zawiera odpowiedzi Darka, drugi Jarka zaś trzeci Marka.

to jest działająca wersja do 100 000

#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
#include<new>
#include<fstream>
using namespace std;
int main()
{
 
long long int a=1000000;
char darek[a];
char jarek[a];
char marek[a];
for(long int i=0;i<a;i++)
{
    darek[i]=0;
    jarek[i]=0;
    marek[i]=0;
}

long long int i=0;
int suma=0;
do
{
if(darek[i]!=jarek[i])
suma++;
if(darek[i]!=marek[i])
suma++;
i++;    
}while(darek[i]!=0);
cout<<suma;
 
 
        cin.ignore();
        getchar();
        return 0;
    } 
0
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
  {
   string darek,jarek,marek;
   getline(cin,darek);
   getline(cin,jarek);
   getline(cin,marek);
   size_t max=min(darek.size(),min(jarek.size(),marek.size())),sum=0;
   for(size_t i=0;i<max;++i) sum+=((darek[i]!=jarek[i])||(darek[i]!=marek[i]));
   cout<<suma<<endl;
   //cin.get(); // zatrzymanie konsoli - jeżeli twoje IDE wymaga tego wiersza to zmień IDE na nowsze !
   return 0;
  }
0

dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1