tietäskös joku tämmösestä, että kun on 2 kokonaisluku-taulukkoa: ja pitäs kolmanteen tauluun laskea tulos, et kuinka monta kertaa t1:n kukin alkio esiintynyt t2:ssa.
kiitollinen jelpistä ..!
varmaankin jotenkin näin...
int koko;
koko=100;
int t1[koko],t2[koko],13[koko];
// tässä sitten sijoitellaan noi t1 ja t2 arvot...
int i,j;
for(i=0;i<koko;i++)
for(j=0;j<koko;j++)
if(t1[i]==t2[j])
t3[i]++;toki ton hässäkän saa myös yhdelle riville... tulisi vähän sotkuinen :D
Tässä on toimiva koodi. Taulukossa t1 on kaikki eri luvut ja taulukosta t2 lasketaan lukujen esiintymiskerrat. Tulokset laitetaan t3-taulukkoon. t1:n ja t3:n indeksoinnit vastaavat siis toisiaan.
#include <stdio.h>
int main(void) {
int t1[3] = {1, 2, 3};
int t2[10] = {1, 2, 1, 1, 3, 2, 1, 2, 2, 3};
int t3[3] = {0};
int i, j;
/* käydään läpi kaikki eri luvut */
for (i = 0; i < 3; i++)
/* käydään läpi tutkittava lukujoukko */
for (j = 0; j < 10; j++)
/* jos luvut ovat samat, */
if (t1[i] == t2[j])
/* kasvatetaan lukumäärätaulukon arvoa */
t3[i]++;
/* tulostetaan tiedot */
for (i = 0; i < 3; i++)
printf("Alkio %i esiintyy %i kertaa\n", t1[i], t3[i]);
}kiitti paljon aiemmist vastauksist!
ny ois tällanen tyrimys tyrkyllänsä: eli mis moka, mix en hoxi, mis hiiskatissa mättää
#include <iostream.h>
const int N=2;
main(void)
{
int Kierros=0;
int taulu [N][N];
while(Kierros<1 ){ //esim.2, jos kahden käyttäjän tuloks. kysyis
int *Pienin=&taulu[0][0];
int *Suurin=&taulu[0][0];
int Luku=0;
cout<<"Anna luvut: ";
for(int Rivi=0;Rivi<N;Rivi++)
for(int Sarake=0;Sarake<N ;Sarake++) {
cin>>Luku;
taulu [Rivi][Sarake]=Luku;
if (taulu [Rivi][Sarake] < *Pienin)
Pienin = &taulu[Rivi][Sarake];
if (taulu [Rivi][Sarake] > *Suurin)
Suurin = &taulu [Rivi][Sarake];
}
cout<<"\n";
cout<<"Pienin: "<< *Pienin <<endl;
cout<<"Suurin: "<< *Suurin<<endl;
Kierros=Kierros+1;
}
cout<<"\nTulostus: ";
for(int Rivi=0;Rivi<N;Rivi++)
for(int Sarake=0;Sarake<N ;Sarake++)
cout<<taulu[Rivi][Sarake]<<" ";
int siirto,vaihto;
int Rivi1 ;
int Sarake1=1;
int Rivi2=1;
int Sarake2=1;
for(Rivi1=1 ;Rivi1<N+1;Rivi1++)
//Sarake1=1;
for( Sarake1=1;Sarake1<N ;Sarake1++) {
siirto=0;
for( Rivi2=Rivi1;Rivi2<N;Rivi2++)
{
if(siirto=0){
Sarake2=Sarake1+1;
siirto=1;
}
else Sarake2=1;
for( ;Sarake2<N ;Sarake2++)
if(taulu[Rivi1][Sarake1]>taulu[Rivi2][Sarake2])
{
vaihto=taulu[Rivi1][Sarake1];
taulu[Rivi1][Sarake1]=taulu[Rivi2][Sarake2];
taulu[Rivi2][Sarake2]=vaihto;
//siirto++;
}
}
}
cout<<"\nTulostus lajittelun jalkeen: ";
for( Rivi=0;Rivi<N;Rivi++)
for(int Sarake=0;Sarake<N ;Sarake++)
cout<<taulu[Rivi][Sarake]<<" ";
cout<<endl;
return 0;
}-vaikken täs oo ketää jelppaillu (ku en oo osanna) -- niin voisko joku silti help me??
tämän threadin alus oli toi 3:een taulukkoon esiint.kertojen laskeminen -ookke-
.. eli samast asiasta nytkin kyse, muutta ku en tajjuu millään funktiossa static-taulukkoa. (<=sinne jäis siis tietoo funktion-suor. jälkeen)
(jos ite funktiossa sais tulostaa, niin onnistus, mutta ku pitää pal. osoite pääohjelmaan ja tulostaa siellä. ja hyveeksi katsotaan sellanenki ku laske-funktio viel erikseen ... )
#include <iostream>
using namespace std;
const int N=5;
//globaalit staattisia, autom. nollalla alust.
int * vertaa(int taulu1[], int taulu2[]);
int laske( int result[]); //,int c);
int main()
{
int test[N] = {1, 2, 3, 4, 7};
int data[10] = {1, 1, 1, 1, 3, 3, 3, 2, 2, 2};
for (int i = 0; i < N; i++)
printf("Alkio %i esiintyy %i kertaa\n", test[i], *vertaa(test,data) );
//eli ykköstä vaan kerryttää...
return 0;
}
int * vertaa(int taulu1[], int taulu2[])
{
static int result[10];// = {0}; //STATIC-taulu TÄNNE JÄÄ ED. YKKÖSEN JUTUT
//funktion jälkeen tänne pitääki jäädä jotai..
int i, j;
for (i = 0; i < 5; i++)
for (j = 0; j < 10; j++)
if (taulu1[i] == taulu2[j])
{
result[i]++;
}
//for ( i = 0; i < 5; i++) //tää tulostus onnistuis kyllä
//printf("Alkio %i esiintyy %i kertaa\n", taulu1[i], result[i]);
return result; ;
}
/*int laske(int result[] )
{
------------------
return result[i];
}*/Aihe on jo aika vanha, joten et voi enää vastata siihen.