数が回文であるかどうかを判別します。例:
入力:121
出力:true
入力:-121
出力:false
入力:1232321
出力:true
上記の例は、数が対称であるかどうかを確認するための回文数です。
私のメソッドは配列または文字列を使用します。C言語にはbool型がありますが、これは「0」falseと「1」trueのみを表します。これに依存して「true」または「false」を直接出力することはできません。
はっきりとは言えませんが、美味しいコードを書いてみましょう!
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <stdbool.h>
int main(void)
{
int i=0;
char num[100];
bool flag=false;
printf("please input a set of number");
printf("(Judge whether it is palindrome number):\n");
scanf("%s", num);
int length = strlen(num);
while (i < (length/2)) {
if (num[i] == num[length - i - 1])
{
flag = true;
}
if (flag == false)
{
printf("false\n");
break;
}
i++;
}
if (flag != false)
{
printf("true\n");
}
return 0;
}
strlen()はint型の文字列(配列)の長さを計算できないため、char型のみを使用できますが、効果は同じです。コード
i <(長さ/ 2)
計算の半分で十分である限り、完全な計算はメモリを消費するだけで、コードは単純で見えません。複雑になると、実行速度に影響を与え、時間を節約し、良い習慣を養います。
また、このメソッドは多くのtrueを出力するため、ループ内でtrueを直接出力することはできません。1回のヒットで殺す偽の質問を見つけます。確立されていない場合は、ループから飛び出して偽を印刷し、後ろ向きに考え、ゆっくりと育成します。すべての質問に対する答えは原則としてあるので、ソースに戻ります。これは、アルゴリズムの問題を書くための非常に重要な考え方です。
私はまだ初心者です。まだ多くのことを知らないので、Cの学習が終わったら変更できます。
それをサポートします。
ご不明な点がございましたら、Xiaobaiまでお問い合わせください。
大きな男がコードの問題があると思ったら、もっと勤勉になれます。ポインタを教えてください。私は学ぶのが大好きです。ねえ黒u。次回があります。