Tablice potrzebna pomoc..

0

Witam, potrzebuje napisać program w którym user wprowadzi kolejno 5 liter(osobno) nastepnie 5 cyfer(osobno), nastepnie wypisze te litery w ilosci wpisanych wczesniej cyfr, podam przyklad dla lepszego zrozumienia, bo nie wiem jak to opisac..

User wpisal: a, e, d, z, q
User wpisal: 2, 4, 2, 1, 3

Wyjście: aa
eeee
dd
z
qqq

na razie zrobilem tą pierwsza część, ale nie mam pomysłu na drugą..

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char letters [5];
    int numbers [5];
    int a;
    int b;

    printf ("Please enter 5 different characters \n");

    for (a=0; a<5; a=a+1)
    {
        printf ("Please enter letter %d: ", a+1);
        scanf(" %c", &letters[a]);
    }
    printf ("You entered : ");
    for (a=0; a<5; a=a+1)
    {
        printf("%c, ", letters[a]);
    }
    printf (" into array 1\n\n");

    printf ("Please enter 5 different numbers \n");

    for (b=0; b<5; b=b+1)
    {
        printf ("Please enter number %d: ", b+1);
        scanf("%d", &numbers[b]);

    }
    printf("You entered : ");
    for (b=0; b <5; b++)
    {
        printf("%d, ", numbers[b]);
    }
    printf (" into array 2\n");

    

    return 0;
}
 
0

Skoro zrobiłeś to czemu wszystko jest po angielsku? Swoją drogą wywal pierwszą pętlę wyświetlającą, i stosownie zmodyfikuj drugą

0

Coś takiego możesz zrobić:

for (b=0; b <5; b++) {
    while(numbers[b] != 0) {
        printf("%c, ", letters[b]);
       	--numbers[b];
    }
}
0

jest po angielsku, bo ucze sie za granicą i rozwiązuje zadania po angielsku :)
zastosowałem na końcu takie cos:

for (a=0; a<5; a++){
    for(b=0; b<numbers[a]; b++)
        printf("%c", letters[a]);
        printf("\n");

 } 

i działa

0

@sig jak mam ten program inaczej napisać, krócej, prościej? jestem trochu zielony :)

0

output programu

1
for(a=0;a<5;++a,printf("\n")) while(numbers[a]--) putchar(letters[a]);
0
_13th_Dragon napisał(a):
for(a=0;a<5;++a,printf("\n")) while(numbers[a]--) putchar(letters[a]);

działa również elegancko, ale nie mam pojęcia jak :D

0

To proste dopóki numbers[a] jest różne od 0 czyli true to pętla się wykonuje następnie dekrementuje się tą wartość, ale przyznam, że nie wpadłbym na zapis tego w taki sposób.

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