// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1; while( luku1 <= 0 ){ printf("\nanna nollaa suurempi kokonaisluku > "); scanf("%d", &luku1); //fpurge( stdin ); //while( '\n'!= getchar() ); printf("\nsyotit luvun: %d\n", luku1); while( luku2 <= 0 ){ printf("\nanna toinen nollaa suurempi kokonaisluku > "); scanf("%d", &luku2); printf("\nsyotit luvun: %d\n", luku2);! return 0;
// // whiledemov2.c // #include <stdio.h> int main(void){ int luku1 = 0; int luku2 = 0; do{ printf("\nanna nollaa suurempi kokonaisluku > "); scanf("%d", &luku1); while( '\n'!= getchar() ); while( luku1 <= 0 ); printf("\nsyotit luvun: %d\n", luku1); do{ printf("\nanna toinen nollaa suurempi kokonaisluku > "); scanf("%d", &luku2); while( '\n'!= getchar() ); while( luku2 <= 0 ); printf("\nsyotit luvun: %d\n", luku2); return 0;
#include <stdio.h> void piirraympyra(void); void piirrakolmio(void); void piirrasuorat(void); void piirrakanta(void); int main(void){ // piirr ympyr piirraympyra( ); // piirr kolmio piirrakolmio( ); // pirr suorat piirrasuorat( ); return 0; void piirraympyra(void){ printf("\npiirretaan ympyraa\n");
void piirrakolmio(void){ printf("\npiirretaan Kolmiota\n"); piirrasuorat( ); piirrakanta( ); void piirrasuorat(void){ printf("\npiirretaan suorat\n"); void piirrakanta(void){ printf("\npiirretaan kantaviivaa\n"); -------------------------------------------------------------------------------------------------
#include <stdio.h> void vaihda( int *, int * ); //esittely int main(void){ int luku1 = 0; int luku2 = 0; printf("\nanna luku >"); scanf("%d", &luku1); printf("\nanna luku >"); scanf("%d", &luku2); printf("\nluku1: %d ja luku2: %d\n", luku1, luku2); if( luku1 > luku2 ){ printf("\nvaihto kaynnistyy\n"); vaihda( &luku1, &luku2 ); printf("\nluku1: %d ja luku2: %d\n", luku1, luku2); return 0;
void vaihda( int * p1, int * p2){ int temp = 0; printf("\nn1: %d ja n2: %d\n", *p1, *p2); temp = *p1; *p1 = *p2; *p2 = temp; printf("\nn1: %d ja n2: %d\n", *p1, *p2); -------------------------------------------------------------------------------------------------
#include <stdio.h> #include "omat.h" #define MAX 1000 int main(void){ int n=0; int minjakaja=0; printf("\nanna luku > "); scanf("%d", &n); if( n < 2 ){ printf("\nliian pieni arvo\n"); else if( n < MAX ){ minjakaja = haejakaja( n ); if( minjakaja == n ){ printf("\nluku %d on alkuluku\n", n); else{ printf("\nluvun %d pienin jakaja on %d\n", n, minjakaja); else{ printf("\nliian suuri arvo\n"); return 0; -------------------------------------------------------------------------------------------------
// // omat.h // // // Created by on 11/27/13. // Copyright (c) 2013 MyCompanyName. All rights reserved. // #ifndef _omat_h #define _omat_h int haejakaja(int ); int parillinen( int ); #endif ------------------------------------------------------------------------------------------------- // //omat.c // #include <stdio.h> #include <math.h> #include "omat.h" int parillinen( int n ){ return ( n%2 == 0);
int haejakaja(int n){ int testi = 0; int jakaja = 0; if( parillinen(n) ){ jakaja = 2; else{ jakaja = 0; testi = 3; while( jakaja == 0){ printf("\ntesti on nyt %d\n", testi); if( testi > sqrt(n) ){ jakaja = n; else if( n % testi == 0){ jakaja = testi; else{ testi = testi + 2; return jakaja; -------------------------------------------------------------------------------------------------!!!!
#include <stdio.h> int main( void ){ int komento; do{ printf("\npaina 1 jos haluat nostaa rahaa\n"); printf("\npaina 2 jos haluat tallettaa rahaa\n"); printf("\npaina 3 jos haluat tietaa saldon\n"); printf("\nvalintasi > "); scanf("%d", &komento); switch( komento ){ case 1: printf("\nnostetaan RAHAA\n"); break; case 2: printf("\ntalletetaan RAHAA\n"); break; case 3: printf("\nsaldon KYSELY\n"); break; case 0: break; default: printf("\nvirheellinen KOMENTO!!!\n"); break;
if( komento == 0 ) break; while( 1 ); printf("\nloppu\n"); return 0; //main -------------------------------------------------------------------------------------------------!
// // kertolaskudemo.c // // // Created by on 11/20/13. // Copyright (c) 2013 MyCompanyName. All rights reserved. // #include <stdio.h> int main(void){ int tulo = 1; int luku; while( tulo < 1000 ){ printf("anna luku > "); scanf("%d", &luku); fpurge(stdin); if( 0!= luku ) tulo = tulo * luku; printf("\ntulo on %d \n\n", tulo); return 0; -------------------------------------------------------------------------------------------------
#include <stdio.h> int lueint(void); int main(void){ int luku1=0, luku2=0; printf("\nanna yksi kokonaisluku > "); luku1 = lueint(); printf("\nanna toinen kokonaisluku > "); luku2 = lueint(); printf("\nsyotit luvut %d ja %d \n", luku1, luku2); return 0; int lueint(void){ int luku=0; int status=0; do{ status = scanf("%d", &luku); while( fgetc(stdin)!= '\n'){ ; if( 0 == status ){ printf("\nei kelpaa, yrita uudelleen > "); while( 0 == status ); return luku;
------------------------------------------------------------------------------------------------- #include <stdio.h> #define KOKO 51 #define LUKUMAARA 3 typedef struct { char etunimi[koko]; char sukunimi[koko]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja Opiskelija_t luetiedot( void); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); void lueroskat(void); int lueint(char kehote[]); void tulostavalikko(void); void lisaauusiopiskelija( Opiskelija_t opiskelijat[], int maara ); int etsiopiskelijaa( Opiskelija_t opiskelijat[], int maara, int opnro );
int main(void){ int i; int loppu = 0; int valinta = 0; int maara = 0; int opnro = 0; int paikka = 0; Opiskelija_t opiskelijat[lukumaara]={"\0","\0", -1, -1 ; do{ tulostavalikko(); valinta = lueint("valintasi > "); switch( valinta ){ case 1: //lis t n uusi opiskelija if( maara < LUKUMAARA ){ lisaauusiopiskelija( opiskelijat, maara ); printf("\nlisattiin UUSI OPISKELIJA\n"); maara++; //maara = maara + 1 else{ printf("\ntaulukko ON TAYSI\n"); break;
case 2: //etsit n opiskelijaa opiskelijanumeron perusteella opnro = lueint("anna etsittavan opiskelijan numero >"); paikka = etsiopiskelijaa( opiskelijat, maara, opnro ); if( paikka >=0 ){ tulostaopiskelija( opiskelijat[ paikka ] ); else{ printf("\nei LOYDY MITAAN\n"); break; case 3: //tulostetaan koko "rekisteri" tulostatiedot( opiskelijat, maara ); break; case 0: //lopetetaan loppu = 1; break; default: printf("\nvirheellinen KOMENTO!\n"); break; while(!loppu ); return 0; //main p ttyy
void tulostavalikko(void){ printf("\n1: LISAA UUSI OPISKELIJA\n"); printf("2: ETSI OPISKELIJAA \n"); printf("3: TULOSTA KAIKKI TIEDOT \n"); printf("0: LOPETA\n"); Opiskelija_t luetiedot(void){ Opiskelija_t temp; printf("\nanna nimi> "); fgets( temp.etunimi, KOKO, stdin ); printf("\nanna sukunimi> "); fgets( temp.sukunimi, KOKO, stdin ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp; void lisaauusiopiskelija( Opiskelija_t opiskelijat[], int maara ){ opiskelijat[maara]= luetiedot();
void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] ); void tulostaopiskelija( Opiskelija_t opiskelija ){ printf("---------------------------\n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro ); printf("arvosana: %d\n", opiskelija.jo_arvosana ); printf("---------------------------\n");
int etsiopiskelijaa( Opiskelija_t opiskelijat[], int maara, int opnro ){ int i; for(i=0; i < maara; i++){ if( opiskelijat[ i ].opiskelijanro == opnro ) return i; return -1; void lueroskat(void){ char roska; while( (roska = fgetc(stdin))!='\n'){ //printf("\nluettiin merkki: %c ja sen koodi on %d", roska, (int)roska); ;
int lueint(char kehote []){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei kay, yrita uudelleen >"); return luku; -------------------------------------------------------------------------------------------------
#include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja Opiskelija_t luetiedot( void); void luekaikkiopiskelijat( Opiskelija_t opiskelijat[ ], int maara ); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); void lueroskat(void); int lueint( char * kehote );
int main(void){ int opnro; int paikka; Opiskelija_t opiskelijat[lukumaara]; luekaikkiopiskelijat( opiskelijat, LUKUMAARA ); opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); paikka = etsiopiskelijaa( opiskelijat, LUKUMAARA, opnro ); if( paikka!= -1 ){ tulostaopiskelija( opiskelijat[ paikka ] ); else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); tulostatiedot( opiskelijat, LUKUMAARA ); return 0; void luekaikkiopiskelijat( Opiskelija_t opiskelijat[], int maara ){ int i; for(i=0; i<maara; i++){ opiskelijat[ i ] = luetiedot( );
Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp; int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ){ int i = 0; while( i < maara ){ if( opiskelijat[i].opiskelijanro == opnro ) return i; i++; return -1;
void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] ); void tulostaopiskelija( Opiskelija_t opiskelija ){ printf("---------------------------\n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf("---------------------------\n"); void lueroskat(void){ while( fgetc(stdin)!='\n');
int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku; void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat(); -------------------------------------------------------------------------------------------------
#include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja void tulostavalikko(void); Opiskelija_t luetiedot( void); void lisaaopiskelija( Opiskelija_t opiskelijat[ ], int paikka ); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); void lueroskat(void); int lueint( char * kehote );
int main(void){ int opnro; int paikka; int lasnaolijat = 0; int valinta; int loppu = 0; Opiskelija_t opiskelijat[lukumaara]; do { tulostavalikko(); valinta = lueint("anna valintasi > "); switch( valinta ){ case 1: if( lasnaolijat < LUKUMAARA ){ lisaaopiskelija( opiskelijat, lasnaolijat ); lasnaolijat++; printf("\nlisattiin uusi opiskelija\n"); else{ printf("\nsori, ei mahdu uusia opiskelijoita,\nsinun täytyy odottaa, kunnes joku valmistuu\n"); break; case 2: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); paikka = etsiopiskelijaa( opiskelijat, lasnaolijat, opnro ); if( paikka!= -1 ){ tulostaopiskelija( opiskelijat[ paikka ] );
else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); break; case 3: tulostatiedot( opiskelijat, lasnaolijat ); break; case 0: loppu = 1; break; default: printf("\ntuntematon VALINTA\n"); break; while(!loppu); return 0; void tulostavalikko(void){ printf("\n1 LISAA OPISKELIJA\n"); printf("2 ETSI OPISKELIJAA\n"); printf("3 TULOSTA KAIKKI\n"); printf("0 LOPETA\n");
void lisaaopiskelija( Opiskelija_t opiskelijat[], int paikka ){ opiskelijat[paikka] = luetiedot(); Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp;
int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ){ int i = 0; while( i < maara ){ if( opiskelijat[i].opiskelijanro == opnro ) return i; i++; return -1; void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] );
void tulostaopiskelija( Opiskelija_t opiskelija ){ printf("---------------------------\n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf("---------------------------\n"); void lueroskat(void){ while( fgetc(stdin)!='\n'); int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku;
void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat(); -------------------------------------------------------------------------------------------------
#include <stdio.h> int palautapaivienlkm( int ); //esittely int lueint(void); int main(void){ int kuukausi=0; int lkm=0; do{ printf("\nanna kuukauden numero > "); kuukausi=lueint( ); if( kuukausi < 1 ) printf("\nliian pieni arvo!"); else if( kuukausi > 12 ) printf("\nliian suuri arvo!"); while( kuukausi < 1 kuukausi > 12); lkm = palautapaivienlkm( kuukausi ); printf("\nkuukaudessa %d on %d paivaa\n", kuukausi, lkm); return 0;
int palautapaivienlkm( int kk ){ int paivat[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31; return (paivat[kk]); int lueint(void){ int luku=0; int status=0; do{ status = scanf("%d", &luku); while( fgetc(stdin)!= '\n'){ ; if( 0 == status ){ printf("\nei kelpaa, yrita uudelleen > "); while( 0 == status ); return luku;! -------------------------------------------------------------------------------------------------
!
#include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja void tulostavalikko(void); Opiskelija_t luetiedot( void); void lisaaopiskelija( FILE * tiedosto ); void tulostatiedot(file * tiedosto); void tulostaopiskelija( Opiskelija_t opiskelija ); Opiskelija_t etsiopiskelijaa( FILE * tiedosto, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); int poistaopiskelija( FILE * tiedosto, int opnro); void lueroskat(void); int lueint( char * kehote );
int main(void){ int opnro; int paikka; Opiskelija_t temp; int tila; int valinta; int loppu = 0; FILE * tiedosto = NULL; if( ( tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){ if( (tiedosto = fopen("opiskelijat.dat", "w"))== NULL){ printf("\nsyntyi VIRHETILANNE; OHJELMAN SUORITUS PAATTYY\n"); return 0; else{ fclose(tiedosto); if( (tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){ printf("\nsyntyi TAAS VIRHETILANNE; OHJELMAN SUORITUS PAATTYY\n"); return 0;
do { tulostavalikko(); valinta = lueint("anna valintasi > "); switch( valinta ){ case 1: lisaaopiskelija(tiedosto); break; case 2: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); temp = etsiopiskelijaa( tiedosto, opnro ); if( temp.opiskelijanro!= -1 ){ tulostaopiskelija( temp ); else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); break; case 3: tulostatiedot( tiedosto ); break; case 4: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); tila = poistaopiskelija( tiedosto, opnro ); if( tila==1 )
printf("\npoistettiin opiskelija\n"); else if( tila =-1 ) printf("\ntapahtui virhe\n"); else printf("\nopiskelijaa EI LOYDY\n"); break; case 0: loppu = 1; fclose( tiedosto ); break; default: printf("\ntuntematon VALINTA\n"); break; while(!loppu); return 0; void tulostavalikko(void){ printf("\n1 LISAA OPISKELIJA\n"); printf("2 ETSI OPISKELIJAA\n"); printf("3 TULOSTA KAIKKI\n"); printf("0 LOPETA\n");
void lisaaopiskelija( FILE * tiedosto ){ Opiskelija_t temp; int result = 0; temp = luetiedot(); result = fwrite( &temp, sizeof(opiskelija_t), 1, tiedosto ); if( result ) printf("\ntallennettiin opiskelijan tiedot\n"); else printf("\nvirhetilanne TALLENNUKSESSA\n"); Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp;
Opiskelija_t etsiopiskelijaa( FILE * tiedosto, int opnro ){ Opiskelija_t temp; int result = 0; rewind( tiedosto ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ if( temp.opiskelijanro == opnro ) return temp; result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); temp.opiskelijanro = -1; return temp;
void tulostatiedot(file * tiedosto){ Opiskelija_t temp; int result = 0; rewind( tiedosto ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ tulostaopiskelija( temp ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto);
int poistaopiskelija( FILE * tiedosto, int opnro){ Opiskelija_t temp; FILE * kopio; if((kopio = fopen("apu.dat", "w"))==null){ return -1; int result = 0; rewind(tiedosto); fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ if( temp.opiskelijanro!= opnro ){ fwrite( &temp, sizeof(opiskelija_t),1, kopio); result = 1; fread( &temp, sizeof(opiskelija_t),1,tiedosto); fclose( tiedosto ); fclose( kopio ); remove( "opiskelijat.dat" ); rename( "apu.dat", "opiskelijat.dat" ); if( (tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){
printf("\nsyntyi HIRMUINEN VIRHETILANNE\n"); return -1; return result; void tulostaopiskelija( Opiskelija_t opiskelija ){ printf("---------------------------\n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf("---------------------------\n"); void lueroskat(void){ while( fgetc(stdin)!='\n');
int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku;
void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat();!