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.