#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int lajitteletaulukko (int taulu[], int koko)
{
int i,j,apu;
for (i=0; i taulu[j])
{ /* vaihda alkiot */
apu = taulu [i];
taulu[i] = taulu[j];
taulu[j] = apu;
}
return 1;
}
int tulostataulukko(int taulu[], int koko)
{
int i;
printf("\n");
for (i=0; i
#include <stdio.h>
#include <ctype.h>
float prososuudet(int counts[], int size)
{
int c;
float total=0;
while ((c=getchar())!= EOF)
{
if (islower(c)) /* on pieni kirjain */
if (c-'a' < size) counts[c-'a']++;
total++;
}
printf("%4.0f \n",total);
return(total);
}
int main(void)
{
int i;
float n;
int pros[26], koko = 26;
for (i=0; i0?100*pros[i]/n:0.0);
printf("\n");
return 0;
}
/*Syötä tekstiä tai lue tiedostosta ( a.out < tiedosto )*/
#include <stdio.h>
int syt (int a, int b)
{
printf("SYT(%d,%d) \n", a, b);
if (a>0 && b>0) /* tässä a:n tulee olla > 0 */
if (a%b == 0)
return b;
else
return (syt (b, a%b));
else
if (a == 0) return a;
else return 0;
}
int main (void)
{
int a,b;
printf("Anna luvut, joiden suurinta yhteistä tekijää etsitään\n");
scanf(" %d %d", &a,&b);
printf (" Lukujen %d ja % d SYT = %d\n", a, b, syt(a,b));
return 0;
}
#include <stdio.h>
#define MAX 80
int palindromi (char merkit[])
{
int i, j;
for (i = 0; merkit[i] != '\0'; i++); /* find end of the string */
j=i-1;
i=0;
while (i < j)
{
if (merkit[i] == ' ')
i++;
if (merkit[j] == ' ')
j--;
if (merkit[i] == merkit[j])
{
i++;
j--;
}
else
if (merkit[i] != ' ' && merkit [j] != ' ')
return 0;
}
return 1;
}
int main (void)
{
char pali [MAX];
char pali1[MAX]="innostunut sonni";
char pali2[MAX]= " saippua kauppias ";
char pali3[MAX]= " sinä ja jänis ";
char pali4[MAX] = "kukkelilakkuk";
int i, c;
printf("\n");
printf("%s %s palindromi\n", pali1, palindromi(pali1)?" on ": " ei ole ");
printf("%s %s palindromi\n", pali2, palindromi(pali2)?" on ": " ei ole ");
printf("%s %s palindromi\n", pali3, palindromi(pali3)?" on ": " ei ole ");
printf("%s %s palindromi\n", pali4, palindromi(pali4)?" on ": " ei ole ");
printf("Anna maks. %d merkin mittainen merkkijono, "
"niin katsotaan onko se palindromi.\n", MAX);
i=0;
while((c= getchar()) != EOF && i< MAX)
if (c!= '\n')
pali[i++] = c;
else
{
pali[i] = '\0';
i=0;
printf("%s %s palindromi\n", pali,
palindromi(pali)? " on ": " ei ole ");
}
return 0;
}
#include <stdio.h>
#define MAX 80
int lengths[MAX];
int wordlength() /* returns the length of the next word */
{
int i=1, c;
while ((c=getchar())!= ' ' && c!='\n'&& c!= EOF)
i++;
return i;
}
int readandcheckinput( )
{
int i,c;
while ((c=getchar())!= EOF)
if (c!= ' '&& c!= '\n')
lengths[wordlength()]++;
else if (c=='\n') lengths[0]++; /*peräkkäiset rivinvaihdot */
/* EOF on päättänyt syötön*/
for (i=0; i < MAX; i++)
if (lengths[i])
printf("pituus %4d: %5d kpl \n", i, lengths[i]);
return 0;
}
int main(void)
{
int i;
for (i=0; i < MAX; i++)
lengths[i] =0;
readandcheckinput();
return 0;
}
#include <stdlib.h>
#include <stddio.h>
#include <time.h>
#define KADENKOKO 40
int vaihda (int taulu[], int k, int l)
{
int apu;
apu = taulu[k];
taulu[k] = taulu[l];
taulu[l] = apu;
return 1;
}
int sekoita (int pakka[], int kortteja)
{
int i, j;
/*sekoitetaan pakka käymällä kaikki pakan alkiot läpi ja vaihtamalla alkio
satunnaisen alkion kanssa*/
for ( i = 0; i < kortteja; i++)
{
j= rand() % 52;
vaihda (pakka, i, j);
}
return 0;
}
int jaa( int pakka[], int kasi[], int kortteja, int n)
/* jakaa pakan päällimmäiset (=lopusta) n korttia käteen */
/* palauttaa negatiivisen luvun (=puuttuvien korttien määrä)
, jos pakassa ei ole tarpeeksi kortteja */
{
int i, j=0;
if (kortteja >= n)
for (i=1; i <= n; i++)
kasi[j++] = pakka[kortteja-i];
return (kortteja - n); /* pakan kortteja jäljellä */
/* jos negatiivinen = puuttuvia kortteja */
}
/* tutkii satunnaisfunktion satunnaisuutta */
int testaasatunnaisuus (int pakka[], int pakankoko)
{
int i, j;
for (i=0; i<52; i++)
pakka[i] =0;
for (i=0; i<100000; i++)
{
j= rand()%pakankoko;
pakka[j]++ ;
}
printf("Pakka:");
for (i=0; i<52; i++)
printf ("%6d ", pakka[i]);
printf("\n");
return 0;
}
int main(void)
{
int kasi[KADENKOKO],
pakka[52];
int i, kadenkoko = 5, pakankoko=52;
srand(time(NULL)); /*satunnaislukujen siemenluku */
/* testaasatunnaisuus(pakka, pakankoko);*/
/*alusta pakka */
for (i=0;i< 52;i++)
pakka[i] = i; /*järjestetty pakka */
sekoita(pakka, pakankoko);
/* tulostetaan sekoitettu pakka */
printf("Sekoitetun pakan kortit: \n");
for (i=0; i < pakankoko; i++)
printf ("%5d=%2d: %3d, \n", pakka[i], pakka[i]/13, pakka[i]%13+1);
printf("\n");
pakankoko = jaa(pakka, kasi, pakankoko, kadenkoko);
/*tulostetaan käden kortit */
printf("Käden kortit:\n");
for (i=0; i < kadenkoko; i++)
printf ("%2d:%3d, ", kasi[i]/13, kasi[i]%13+1);
printf("\n");
/* tulostetaan pakka */
printf("Pakan kortit:\n");
for (i=0; i < pakankoko; i++)
printf ("%2d:%2d, ", pakka[i]/13, pakka[i]%13+1);
printf("\n");
pakankoko = jaa(pakka, kasi, pakankoko, kadenkoko);
/* tulostetaan kaden kortit */
printf("Käden kortit:\n");
for (i=0; i < kadenkoko; i++)
printf ("%2d:%2d, ", kasi[i]/13, kasi[i]%13+1);
printf("\n");
/* tulostetaan pakka */
printf("Pakan kortit:\n");
for (i=0; i < pakankoko; i++)
printf ("%2d:%2d, ", pakka[i]/13, pakka[i]%13+1);
printf("\n");
pakankoko = jaa(pakka, kasi, pakankoko, kadenkoko);
/* tulostetaan kaden kortit */
printf("Käden kortit:\n");
for (i=0; i < kadenkoko; i++)
printf ("%2d:%2d, ", kasi[i]/13, kasi[i]%13+1);
printf("\n");
return 0;
}