Funkcje, programowanie w C: zaprojektuj funkcję która pobiera 3 argumenty: znak oraz 2 liczby ...

0

zaprojektuj funkcję która pobiera 3 argumenty: znak oraz 2 liczby całkowite. Pierwsza liczba określa liczbę razy, jaką należy wyświetlić znak w jednym wierszu; druga liczba określa liczbę wierszy.

Zadanie pochodzi z książki S. Prata'y z działu Funkcje. Bardzo prosiłabym o pomoc. Napisałam kod, ale mi nie działa i nie mam pojęcia co robię nie tak. Z góry dziękuję :)

#include<stdio.h>
void fun(int r, int w, char z);

int main(void)
{
	int rozmiar, wiersz;
	char znak;
	printf("podaj ilosc znaków\n");
	scanf("%d", &rozmiar);
	printf("podaj liczbe wierszy\n");
	scanf("%d", &wiersz);
	printf("podaj znak\n");
	scanf("%c", &znak);
	fun(rozmiar, wiersz, znak);
	return 0;
}
void fun(int r, int w, char z)
{
    int i;    
	for(i=0; i<w; i++)
	printf("%c \n", r*z);
}
1

A gdzie ten kod? dopiero wtedy ktoś ci powie co jest nie tak, nasze szklane kule nie mają atestu na obecny rok.

0
#include<stdio.h>
void fun(int r, int w, char z);

int main(void)
{
	int rozmiar, wiersz;
	char znak;
	printf("podaj ilosc znaków\n");
	scanf("%d", &rozmiar);
	printf("podaj liczbe wierszy\n");
	scanf("%d", &wiersz);
	printf("podaj znak\n");
	scanf("%c", &znak);
	fun(rozmiar, wiersz, znak);
	return 0;
}
void fun(int r, int w, char z)
{
    int i;    
	for(i=0; i<w; i++)
	printf("%c \n", r*z);
}
0

No właściwie prawie dobrze, ale C to nie python i nie możesz sobie tak magicznie wyczarować powielonego znaku/stringa ;)
Możesz próbować jakie cuda na kiju z dynamicznym zaalokowaniem stringa w locie, ale zgaduje że w zadaniu chodziło o napisanie w funkcji dwóch pętli po prostu ;) Wewnętrzna pętla wypisuje znak 'z', a zewnętrzna pętla wypisuje znak nowej linii.

0

void fun(int r, int w, char z)
{
int i, j;
for(i=0; i<w; i++)

{
	for(j=0; j<r; j++)
	printf("%s", z);
printf("\n");
}

}

0

hahah, ogień :D to co akurat cudem miałaś dobrze popsułaś. Do wypisywania ZNAKU jest %c a do wypisywania ciągu znaków jest %s. Wypisujesz znak więc powinno być %c.

0
void fun(int R,int W,char z)
  {
   int r,w;    
   for(w=0;w<W;++w,printf("\n")) for(r=0;r<R;++r) printf("%c",z);
  }

1 użytkowników online, w tym zalogowanych: 0, gości: 1