當前位置:首頁 » 編程語言 » c語言中的符串是迴文嗎
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中的符串是迴文嗎

發布時間: 2022-07-11 11:18:29

c語言編寫一個程序,判斷輸入的一個字元串是否是迴文。

源代碼如下:

#include <stdio.h>

int main()

{

int n, reversedInteger = 0, remainder, originalInteger;

printf("輸入一個整數: ");

scanf("%d", &n);

originalInteger = n;

// 翻轉

while( n!=0 )

{

remainder = n%10;

reversedInteger = reversedInteger*10 + remainder;

n /= 10;

}

// 判斷

if (originalInteger == reversedInteger)

printf("%d 是迴文數。", originalInteger);

else

printf("%d 不是迴文數。", originalInteger);

return 0;

}

(1)c語言中的符串是迴文嗎擴展閱讀

1、函數的返回值是通過函數中的return語句獲取的。

2、函數值的類型。

3、如果函數值的類型和return語句中表達式的值不一樣,則以函數類型為准。

4、如果調用函數中沒有return語句,並不帶回一個確定的用戶需要的值,函數不是不帶回值,而只是不帶回有用的值,帶回一個不確定的值。

Ⅱ C語言 判斷給定字元串是否是迴文

我猜樓主的想法是:

讓數組的頭和尾比較,一樣了,就比較下一對,一直比較到最後,如果i=j,就說明是迴文。

但是題主卻沒有用循環語句,按照樓主的程序就能比較兩次,比較不完肯定錯;而且題主找到的i,並不指向數組最後一個元素,而是指向他的結尾符號。(詳情看圖)

改正意見:

1.使用循環語句,從頭判斷到尾。

那就要求我們給循環語句一個最長執行長度,這就要考慮兩種情況,一種,數組長度為奇數,另一種,數組長度尾偶數。不同的情況我們的判決情況也不一樣,必須選一個適合兩種情況的判決條件,這里使用n=i/2-1,讓n來作為標准。(原因看圖)。(其實除了要考慮這種情況之外,還要考慮特殊情況,比如長度為1,2這樣的,這種特殊情況,就是程序容易忽略,容易出錯的地方。)

2.在判斷前,i-1,讓i指向數組最後一個元素。

#include<stdio.h>
intmain()
{
chara[20];
gets(a);
inti,j,n;
j=i=0;
while(a[i]!='')i++; //此時i並不指向a的最後一個元素,而是指向它的結尾符號『、0』
n=i/2-1;
i--; //讓i指向a的最後一個元素
while(j<=n)
{
if(a[i]!=a[j])break;
else{
i--;
j++;
}
}
if(j>n)printf(" 迴文!");
elseprintf(" 不迴文!");
return0;

}

總結:編程不容易,思考需謹慎。面向過程的的編程,任何情況都要考慮出來,這樣你的程序才是正確的。

Ⅲ 輸入一個字元串,判斷它是不是迴文 C語言

用兩頭湊法,找到字元串的最後一個字元,與第一個字元比較。然後各自向中間移動,逐個比較。如果比較中出現不同,則不是迴文。當二者相遇時,一直都相同,則字元串為迴文。

參考代碼如下:

inthuiwen(char*s)
{
char*p=s;
while(*p)p++;//找到結束符的位置。
p--;//的前一個字元,就是字元串的最後一個字元。
while(s<p)
{
if(*s!=*p)return0;//發現不同,不是迴文。
s++;
p--;//二者向中間移動。
}
return1;//到相遇後一直相同,是迴文。
}

intmain()
{
chars[100];
scanf("%s",s);//輸入字元串。
if(huiwen(s))//判斷是否迴文並輸出結果。
printf("%s是迴文字元串 ",s);
else
printf("%s不是迴文字元串 ",s);

return0;
}

Ⅳ c語言編程:判定一個字元是否是迴文串(迴文串是指從開頭讀和從末尾讀均為相同字元的字元串,例如:abcba

1、首先,在C語言軟體中,定義多個整型變數,保存程序中所需操作的數值。

Ⅳ c語言判斷字元串是否為迴文

#include <stdio.h>

/*fun()函數:傳入一個字元數組,如果是迴文序列返回1,不是就返回0*/
int fun(char a[])
{
int i,j,n=0;
while(a[n]!='\0') n++; /*計算傳入字元串(數組)長度*/
n--; /*跳出while循環時 a[n]='\0',故n--*/
for(i=0,j=n;i<j;i++,j--)
if(a[i]!=a[j]) break;
if(i>=j) return 1;
return 0;
}

int main()
{
char str[20];
puts("輸入一個字元串:\n");
gets(str);
if(fun(str)) printf("%s 是迴文序列\n",str);
else printf("%s 不是迴文序列\n",str);
return 0;
}

Ⅵ 編c語言程序,判斷某一字元串是不是「迴文數」

具體實現方法和結果展示如下(下圖為輸入迴文數時顯示的結果):

Ⅶ C語言判斷一串字元是否為迴文串

#include<stdio.h>
#include<string.h>
constintmaxn=256;
intmain(){inti;charstr[maxn];intlen,b;
scanf("%s",str);len=strlen(str);//輸入完了字元串再計算長度,不能在輸入之前算
for(i=0,b=1;i<=len/2;i++)
if(str[i]!=str[len-i-1]){b=0;break;}//如果發現不相等則判定不是迴文
if(b!=0)printf("yes");elseprintf("no");//等循環完畢再得出結論
return0;//main前面有int修飾,因此必須返回整型值
}

Ⅷ c語言編程題 輸入一字元串,判斷該字元串是否為迴文。

#include <stdio.h>

#include<stdlib.h>

int main()

{

char a[100];

int i=0,j=0;

printf("請輸入字元串: ");

gets(a);

while(a[i]!='')

i++;

i--;

for(;j<=i;i--,j++)

{

if(a[i]!=a[j])

{

break;

}

}

if(j<=i)

{

printf("不是迴文串 ",a);

}

else

{

printf("是迴文串 ",a);

}

system("pause");

return 0;

}

運行效果:

(8)c語言中的符串是迴文嗎擴展閱讀:

return 0代表程序正常退出。return是C++預定義的語句,它提供了終止函數執行的一種方式。當return語句提供了一個值時,這個值就成為函數的返回值。

return語句用來結束循環,或返回一個函數的值。

1、return 0,說明程序正常退出,返回到主程序繼續往下執行。

2、return 1,說明程序異常退出,返回主調函數來處理,繼續往下執行。return 0或return 1對程序執行的順序沒有影響,只是大家習慣於使用return(0)退出子程序而已。

Ⅸ C語言 判斷一個字元串是不是迴文

while是找到字元串的末尾,'\n'是所有字元串的最後一個字元,for循環是用來判斷是不會迴文的。j是從第一個字元開始,i是從最後一個字元開始,比較完一個字元後,j++,i--,一旦發現某個地方首位是不相等的,則不是迴文退出

Ⅹ C語言中判斷一個字元串是否為迴文的問題

我覺得可以是先將這字元串拆分。。用一維數組a[i]來表示。分成前、後兩部分。同時要知道總共的位數Z(即該數組數的個數),然後先將總共的位數整除以2,得到一個數X。建立循環。有if a[i]=a[z-i]的語句。
其中,for i=1 to x即可。
由系統給出任意字元串我不太清楚,如果是自輸入字元串就容易了。

我所講的這些,是建立在Pascal語言上的,不知你能否適用。