-4
これは私のコードです。入力の場合:スイッチケースがおそらくトリガーされていない
は、出力2必要がありますが、それはいくつかの理由で1を印刷だと私は知らない1
は、どこ問題です。
for(int length = 0; length < N; length++){
scanf("%c", &T[length]);
scanf("%d", &L[length]);
}
をご入力した場合:私は、値L回反転する必要が
は、それは常に
#include <stdio.h>
#include <ctype.h>
int main(void) {
int N, aa, bb;
int k1 = 1, k2 = 0, k3 = 0, k4 = 0, k5 = 0;
scanf("%d", &N);
char *T = new char[N];
int *L = new int[N];
for (int length = 0; length < N; length++) {
scanf("%c", &T[length]);
scanf("%d", &L[length]);
}
for (int i = 0; i < N; i++) {
switch (toupper(T[i])) {
case 'A':
for (int j = 0; j < L[i]; j++) {
aa = k1;
bb = k2;
k2 = aa;
k1 = bb;
}
break;
case 'B':
for (int j = 0; j < L[i]; j++) {
aa = k1;
bb = k3;
k3 = aa;
k1 = bb;
}
break;
case 'C':
for (int j = 0; j < L[i]; j++) {
aa = k1;
bb = k4;
k4 = aa;
k1 = bb;
}
break;
case 'D':
for (int j = 0; j < L[i]; j++) {
aa = k1;
bb = k5;
k5 = aa;
k1 = bb;
}
break;
case 'E':
for (int j = 0; j < L[i]; j++) {
aa = k2;
bb = k3;
k3 = aa;
k2 = bb;
}
break;
case 'F':
for (int j = 0; j < L[i]; j++) {
aa = k2;
bb = k4;
k4 = aa;
k2 = bb;
}
break;
case 'G':
for (int j = 0; j < L[i]; j++) {
aa = k2;
bb = k5;
k5 = aa;
k2 = bb;
}
break;
case 'H':
for (int j = 0; j < L[i]; j++) {
aa = k3;
bb = k4;
k4 = aa;
k3 = bb;
}
break;
case 'I':
for (int j = 0; j < L[i]; j++) {
aa = k3;
bb = k5;
k5 = aa;
k3 = bb;
}
break;
case 'J':
for (int j = 0; j < L[i]; j++) {
aa = k4;
bb = k5;
k5 = aa;
k4 = bb;
}
break;
}
}
if (k1 == 1)
printf("1");
else if (k2 == 1)
printf("2");
else if (k3 == 1)
printf("3");
else if (k4 == 1)
printf("4");
else
printf("5");
return 0;
}
これらの変数は配列になりたいです...スイッチも必要ないでしょう:) – Rakete1111
'k4'や' k5'のような変数の代わりに 'k [4]'と 'k [5] '。 Raketeさんのように、**配列を使用してください**。 'new x []'の代わりに 'std :: vector'を使ってメモリ管理を簡単にすることもできます。 – tadman
デバッガを使用します。 – mascoj