#include <stdio.h>
#define N 20
int isHui(int x){
int i=0,j=0,a[N];
while(x){
a[i++]=x%10;
j++;
x/=10;
}
for(i=0;i<=j/2;i++){
if(a[i]!=a[j-1-i])
return 0;
}
return 1;
}
int main(){
int n;
scanf("%d",&n);
if(isHui(n))
printf("这是回文数\n");
else
printf("这不是回文数\n");
return 0;
}
1768c-exercise-example30
参考方法:
#include<stdio.h>
#define N 20
int main(void)
{
int i,j;
int n;
int a[N];
printf("请输入数字:");
scanf("%d",&n);
for(j = 0; j < 5; j++)
{
a[j] = n%10;
n = n/10;
}
j = 0;
i = 4;
while(i < j)
{
if(a[i] != a[j])
{
printf("这不是回文数\n");
return 0;
}
j++;
i--;
}
printf("这是回文数\n");
return 0;
}
1767c-exercise-example30
判断是否是回文数,先将此数字按逆序重排,再与原先数值比较:
#include <stdio.h>
int main( )
{
int x;
int sum = 0;
printf("请输入一个整数:\n");
scanf("%d", &x);
for (int i = x; i > 0; i /= 10)
sum = sum * 10 + i % 10;
if(sum == x)
printf("%d 是回文数\n",x);
else
printf("%d 不是回文数\n", x);
}
1766c-exercise-example30
20位以内判断回文数
#include <stdio.h>
int main(void)
{
unsigned long long input;
int bit = 0;
int xar[20];
printf("请输入20位以内正整数: ");
scanf("%llu", &input);
unsigned long long x = input;
while (x > 0)
{
xar[bit++] = x % 10;
x /= 10;
}
for (int i = 0; i < bit / 2; i++)
{
if (xar[i] != xar[bit - i - 1])
{
printf("%llu : 不是一个 回文数 。\n", input);
break;
}
if (i == bit / 2 - 1)
printf("%llu : 是一个 回文数 。\n", input);
}
return 0;
}
1770c-exercise-example31
/*只是在if语句中加了一个若输入第二个字符不符合星期的判错;*/ #include <stdio.h> int main() { char i,j; printf("请输入第一个字符:"); scanf("%c",&i); getchar(); switch(i) { case 'm': printf("monday\n"); break; case 't': printf("请输入下一个字母:"); scanf("%c",&j); getchar(); if (j == 'u') { printf("tuesday\n"); break; } if (j == 'e') { printf("thursday\n"); break; } else { printf("error"); break; } case 'w': printf("wedesday\n"); break; case 'f': printf("friday"); break; case 's': printf("请输入下一个字符:"); scanf("%c",&j); getchar(); if(j == 'a') { printf("satarday"); break; } if(j == 'u') { printf("sunday"); break; } else { printf("error"); break; } default: printf("error"); break; } return 0; }1769c-exercise-example30
参考方法:
#include <stdio.h> #define N 20 int isHui(int x){ int i=0,j=0,a[N]; while(x){ a[i++]=x%10; j++; x/=10; } for(i=0;i<=j/2;i++){ if(a[i]!=a[j-1-i]) return 0; } return 1; } int main(){ int n; scanf("%d",&n); if(isHui(n)) printf("这是回文数\n"); else printf("这不是回文数\n"); return 0; }1768c-exercise-example30
参考方法:
#include<stdio.h> #define N 20 int main(void) { int i,j; int n; int a[N]; printf("请输入数字:"); scanf("%d",&n); for(j = 0; j < 5; j++) { a[j] = n%10; n = n/10; } j = 0; i = 4; while(i < j) { if(a[i] != a[j]) { printf("这不是回文数\n"); return 0; } j++; i--; } printf("这是回文数\n"); return 0; }1767c-exercise-example30
判断是否是回文数,先将此数字按逆序重排,再与原先数值比较:
#include <stdio.h> int main( ) { int x; int sum = 0; printf("请输入一个整数:\n"); scanf("%d", &x); for (int i = x; i > 0; i /= 10) sum = sum * 10 + i % 10; if(sum == x) printf("%d 是回文数\n",x); else printf("%d 不是回文数\n", x); }1766c-exercise-example30
20位以内判断回文数
#include <stdio.h> int main(void) { unsigned long long input; int bit = 0; int xar[20]; printf("请输入20位以内正整数: "); scanf("%llu", &input); unsigned long long x = input; while (x > 0) { xar[bit++] = x % 10; x /= 10; } for (int i = 0; i < bit / 2; i++) { if (xar[i] != xar[bit - i - 1]) { printf("%llu : 不是一个 回文数 。\n", input); break; } if (i == bit / 2 - 1) printf("%llu : 是一个 回文数 。\n", input); } return 0; }