大家好,我是一童,今天分享的是 判断字符串回文数,阿拉伯数字转换希腊数字
- 判断字符串回文数
#include <stdio.h>//判断字符串回文数
#include<string.h>
#define N 10000
int Log(char a[N]);
void main()
{
int i,n;
char a[N];
puts("请输入字符串: ");
scanf("%s",a);
i=Log(a);
if(Log(a))//判断q<p是否为真
printf("您输入的字符串是回文字符串!!\n");
else
printf("您输入的字符串是不回文字符串!!\n");
}
int Log(char a[N])
{
char *q,*p;
for(p=a,q=a+strlen(a)-1;p<q;p++,q--)
if(*p!=*q)break;
return q<=p;
}
- 阿拉伯数字转换希腊数字
# include<stdio.h>//阿拉伯数字 转换希腊数字
# include<string.h>
# define ROWS 4
# define COLS 4
# define N 30
int nums[ROWS][COLS]={{1000,1000,1000,1000},{900,500,400,100},{90,50,40,10},{9,5,4,1}};
char *rom[ROWS][COLS]={{"m","m","m","m"},{"cm","d","cd","c"},{"xc","l","xl","x"},{"ix","v","iv","i"}};
void Tran(int n,char roman[N]);
void main()
{
int n;
char roman[N];
printf("请输入你要转换的数字(范围:1---9999): ");
scanf("%d",&n);
while(n>9999||n<1)
{
printf("您输入的数字越界!请重新输入!!\n");
printf("请输入你要转换的数字(范围:1---9999): ");
scanf("%d",&n);
}
Tran(n,roman);
printf("阿拉伯数字 %d 转换希腊数字为 %s\n",n,roman);
}
void Tran(int n,char roman[N])
{
int i,j;
roman[0]='\0';
for(i=0;i<ROWS;i++)
for(j=0;j<COLS;j++)
{
while(n>=nums[i][j])
{
strcat(roman,rom[i][j]);
n-=nums[i][j];
}
}
}
有看不懂或者写错的地方,欢迎下方留言!!