私はこのコードを書いて、数字の中にいくつの桁があるかを調べました。私はユーザーが4桁以下の数字を使用していると仮定しています。なんらかの理由で、コードはifステートメントをスキップしています。私はこれに関連する他の質問をチェックしましたが、同じエラーはありません。手伝って頂けますか?文が無視される場合(C++)
#include "stdafx.h"
int main()
{
char d1;
char d2;
char d3;
char d4;
printf("Please enter a number with four or less digits:");
scanf("%c%c%c%c", &d1, &d2, &d3, &d4);
printf("%c%c%c%c\n", d1, d2, d3, d4);
int d1v2 = d1;
int d2v2 = d2;
int d3v2 = d3;
int d4v2 = d4;
printf("%c%c%c%c\n", d1v2, d2v2, d3v2, d4v2);
int num = (d1v2 * 1000) + (d2v2 * 100) + (d3v2 * 10) + d4v2;
printf("%d", num);
int numv2 = num;
if (numv2 < 10) {
printf("Your number has 1 digit\n");
}
else if (numv2 >= 10 && numv2 < 100) {
printf("Your number has 2 digits\n");
}
else if (numv2 >= 100 && numv2 < 1000) {
printf("Your number has 3 digits\n");
}
else if (numv2 >= 1000 && numv2 < 10000) {
printf("Your number has 4 digits\n");
}
}
あなたのデバッガはあなたに何を示していますか? –
'numv2'を出力し、それがあなたが期待しているものであることを確認してください。 – NathanOliver
なぜ変数名には非常に多くの数がありますか? –