Nun ist es ein einfaches Programm, das ich eine Reihe von Zeichen bekam, wie:Printing Elemente eines Arrays in C
char alphabet[5] = {'A', 'B2', 'C', 'D4', 'E'};
und ich möchte Elemente dieses Arrays drucken, innerhalb eines für -loop:
int remainder = my_number % 5; printf("%c\n", alphabet[remainder]);
das ist es, wo ich es nicht als den Ausdruck erwartet ausgeführt machen kommt A
, 2
, C
, 012.oder E
. Wie kann ich es drucken B2
und D4
?
Ich habe gehört, Enums zu verwenden, aber ich verstehe nicht, wie ich verwenden könnte, ich werde verwirrt über die Idee von Elementen haben Wert und wie ich die Elemente aus ihnen Wert, zB: enum letters {'a', 'b', 'c'};
a = 0 , b = 1 und c = 2.
(vielleicht auch nur meine Syntax ist es nicht korrekt, aber bitte, wenn Sie mir helfen ...)
ich werde meinen Code für eine einfachere Erklärung öffnen.
#include <stdio.h>
#include <stdlib.h>
const char *notes[13] = {"C", "C2", "D", "D2", "E", "F", "F2", "G", "G2", "A", "A2", "B", "c"}; // The 2's is for the "#"
int main(int argc, char const *argv[]) // Just using argv[1] to say how much numbers I want to print
{
int now, before_1 = 1, before_2 = 1, rem, steps; // "rem" stands for remainder
char note;
if (atoi(argv[1]) <= 2)
for (steps = 0; steps < atoi(argv[1]); steps++)
printf("1\n");
else
for (steps = 0; steps < atoi(argv[1]); steps++) // Main loop for Fibonacci's Numbers
{
now = before_1 + before_2;
rem = now % 13;
note = notes[rem];
printf("Note : %c <=> Rem : %d. Num : %d\n", note, rem, now);
before_2 = before_1; // Change values of variables
before_1 = now;
}
return 0;
}
Die Idee ist, die Zahl der Fibonacci-Serie bekommen und sie in allen 13 Anmerkungen möglich Transformation (umfassen die scharfen sind), aber wie ich gesagt habe, die Ausgabe wird zur Kenntnis zu gut.
'B2' und' D4' sind keine Zeichen. – tkausl
Sind sie Saiten? –
@ tkausl: Sie sind gültige Zeichenkonstanten. Nur wahrscheinlich nicht als Initialisierer für ein 'char' Objekt korrigiert. – Olaf