Skapa en radbrytning i en lista 10x10.
En av funktionerna i min kod ska skriva ut 100 st tal i en array. Men ska presenteras 10x10. En radbrytning måste sättas in i denna kod och jag vet inte hur jag ska göra detta?
Se nedan;
void skriv(int vektor[])
{
int i;
for (i=0;i<talfoljd;i++)
vektor[i]=(int)(rand()%900);
for(i=0;i<talfoljd;i++)
printf("\n");
jo jag vet att man behöver printf(”\n). men det måste fattas något mer . och vart stoppar man in printf? jag har testat massor men det blir inte rätt.
Hur ser din loop ut som skriver ut?
int i;
for (i=0;i<talfoljd;i++)
vektor[i]=(int)(rand()%900);
for (i=0;i<talfoljd;i++)
printf("%d|", vektor[i]);
for(i=0;i==rader;i++)
printf("\n");
jag vet inte hur jag ska skriva den
Antingen kan du kolla om du är på var tionde rad med modulus-operatorn, och då printa radbrytning.
Eller så kan du ha två loopar i varandra, där den yttre ökar 10 åt gången samt radbryter, och den inre lägger på 0-9 till detta och skriver talen.
Om du publicerar hela din kod här med "Infoga programmeringskod" så underlättar det för oss alla.
Nånting sånt här alltså (ej testat):
for (i=0;i<talfoljd;i++) {
printf("%d|", vektor[i]);
if (i%10 == 0)
print("\n");
}
void skriv(int* vektor)
{
int i;
int j;
int tal[100];
do
{
for (i=0;i<rader;i++)
printf("%d|", tal[i]);
j++;
printf("\n");
}while (j<10);
}
int limit(int* vektor)
{
int i;
for (int i=0;i<talfoljd;i++)
vektor[i]=(rand()%talmax);
return *vektor;
detta är en del av min programkod. nu blir det en radbrytning. men talen blir inte mellan 0-900 längre. jag ska alltså anropa funktioner. med en meny som jag har gjort i main. när jag väljer 1 ska 100 tal slumpas med värde 0-900.
Indentera koden, är du snäll. Det gör den mycket lättare att läsa.
Mitt förslag är att undvika globala variabler (t ex rader
och talfoljd
). Använd indentering för att göra koden lättare att läsa (och avlusa). Kommentarer i koden nedan.
void skriv(int* vektor) /* Argumentet 'vektor' är bra men används inte i funktionen. */
{
int i; /* Bör deklareras närmare där den används, dvs i for-loopen. */
int j; /* Bör initieras till 0, annars bestämmer kompilatornn vad värdet blir. */
int tal[100]; /* Lokal variabel 'tal' där alla 100 element får värdet från kompilatorn. */
do
{
for (i=0;i<rader;i++) /* Global variabel 'rader', undvik! Kan läggas som argument istället. */
printf("%d|", tal[i]); /* Kommer att skriva ut ett antal värden från BÖRJAN av 'tal'. */
j++;
printf("\n");
} while (j<10);
}
int limit(int* vektor) /* Funktionen kan vara av typen 'void' istället för 'int'. */
{
int i;
for (i=0;i<talfoljd;i++) /* Global variabel 'talfoljd', undvik! Kan läggas som argument istället. */
vektor[i]=(rand()%talmax); /* Global variabel 'talmax', undvik! Kan läggas som argument istället. */
return *vektor; /* Pekaren är känd av anroparen så den behöver inte returneras. */
}