Ⅰ 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]!='