Seuraavanlainen "tietokanta" -harjotelma on tekeillä, mutta on joitain ongelmia:
1. Kun ohjelma kysyy ensimmäisen kerran, mitä tehdään, niin ohjeteksti tulee kerran, mutta seuraavalla kierroksella se tulee kahdest(ensimmäinen code-tagi havainnollistaa). Olisiko jotain neuvoja??
2. Miksi kääntäjä valittaa jokaiselle omatekemälleni funktiolle: "tiedosto.c:27: warning: implicit declaration of function ‘poista’"
Lisää(a) | Poista(d) | Näytä kaikki(s) | Lopeta(q)
a
Syötä nimi
> Regel
Lisää(a) | Poista(d) | Näytä kaikki(s) | Lopeta(q)
Lisää(a) | Poista(d) | Näytä kaikki(s) | Lopeta(q)
a
Syötä nimi
>
#include <stdio.h>
#include <string.h>
char names[50][20];
int n=0;
char valinta[1];
void main()
{
puts("Lisää(a) | Poista(d) | Näytä kaikki(s) | Lopeta(q)");
fgets(valinta,2,stdin);
printf("\n");
if (valinta[0] == 'a')
{
lisaa();
}
else if (valinta[0] == 's')
{
nayta();
}
else if (valinta[0] == 'd')
{
poista();
}
else
{
}
fflush(stdin);
main();
}
int lisaa()
{
printf("Syötä nimi \n > ");
char name[20];
scanf("%s",name);
strcpy(names[n],name);
n++;
fflush(stdin);
return 0;
}
int poista()
{
int del_id,i;
scanf("%d",&del_id);
for(i=del_id;i<n;i++)
{
strcpy(names[i],names[i+1]);
}
n--;
return 0;
}
int nayta()
{
int i;
for(i=0;i<n;i++)
{
printf("%d %s \n",(i),names[i]);
if (i==(n-1))
{
printf("\n");
}
}
return 0;
}