Witam, program niby dziala, ale gdy wpisuje jakas dana z klawiatury moj visual basic sie buntuje.
W ostrzezeniach mam cos takiego „scanf_s: przekazano niewystarczającą liczbę argumentów dla ciągu formatowania "
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void wydruk_tablicy(char *Ela, int *Ula)
{
int i;
printf("\n %s:", Ela);
for (i = 0;i<5;i++)
printf(" %d", Ula[i]);
_getch();
}
void przyklad1(void)
{
system("cls");
int Ala[5] = { 1,3,5,7,9 };
int *p = Ala, *q = &Ala[2], *r = &Ala[3], *s = &Ala[4];
printf("*p++ \nPrzed: *p = %d", *p); // Testowanie *p++
printf("\n\t\t%d", *p++);
printf("\n Po: *p = %d", *p);
wydruk_tablicy("Ala", Ala);
printf("\n\n(*q)++ \nPrzed: *q = %d", *q); // Testowanie (*q)++
printf("\n\t\t%d", (*q)++);
printf("\n Po: *q = %d", *q);
wydruk_tablicy("Ala", Ala);
printf("\n\n*--r \nPrzed: *r = %d", *r); // Testowanie *--r
printf("\n\t\t%d", *--r);
printf("\n Po: *r = %d", *r);
wydruk_tablicy("Ala", Ala);
printf("\n\n--*s \nPrzed: *s = %d", *s); // Testowanie --*s
printf("\n\t\t%d", --*s);
printf("\n Po: *s = %d", *s);
wydruk_tablicy("Ala", Ala);
}
void kopiuj(char *d, char *s)
{
while (*d++ = *s++);
}
void przyklad2(void)
{
char Ala[20], Ela[20], Ula[20];
system("cls");
printf("\nSource: ");
scanf_s("%s", Ala);
kopiuj(Ela, Ala);
printf(" Ela: %s", Ela);
printf("\n Ula: %s", strcpy_s(Ula, Ala));
_getch();
}
void main(void)
{
char pyt;
while (1)
{
system("cls");
printf("\n\r 1 - przyklad 1");
printf("\n\r 2 - przyklad 2");
printf("\n\rEsc - koniec");
pyt = _getch();
switch (pyt)
{
case '1':
przyklad1();
break;
case '2':
przyklad2();
break;
case 27:
return;
default:
printf("\n\nUWAZAJ!!!");
_getch();
}
}
}
// 0. Segment main - konstrukcja while
// 1. Funkcja wydruk_tablicy - skraca program
// 2. Parametry formalne i aktualne funkcji wydruk_tablicy
// 3. Cztery przypadki w funkcji przyklad1
// 4. Funkcja kopiuj
// 5. Prototyp funkcji strcpy - wartosc zwracana