1到1000的回文数c语言
㈠ c语言回文数
//在屏幕上打印出1-1000之间的所有回文数
#include<stdio.h>
intmain(void)
{
intval;//存放待判断数字
intm,sum=0;
for(val=1;val<1000;val++)
{
m=val;
do
{
sum=sum*10+m%10;
m/=10;
}while(m);
if(sum==val)
{
printf("%d ",val);
}
sum=0;
}
return0;
}
㈡ C语言1000以内回文数用流程图怎么表示
这不是一个流程图能表示出来的,可以分模块进行流程图设计
一、主程序
1.循环开始
2.显示主菜单
3.输入选项
4.根据选项调用相应的子模块,如果是退出,则退出循环,结束程序
5.返回主菜单(循环开始)
二、各子程序
1、添加数据
输入数据
打开文件stu.txt(追加模式)
写入数据
关闭文件
返回主程序
2、数据输出
打开文件stu.txt(只读模式)
循环
读数据到变量中
如果无记录,则显示相应错误,关闭文件,返回主程序
如果读到文件尾,则结束循环
显示数据
循环读取下一条数据
㈢ 高分求:C语言,求1000以内的回文数,以每行6个数输出
#include<stdio.h>
int main()
{
int i,j,k,a,m=0;
for(i=1;i<1000;i++)
{
k=i;
a=0;
while(k!=0)
{
j=k%10;
k=k/10;
a=a*10+j;
}
if(a==i){printf("%d\t",i);m++;}
if(m==6){printf("\n");m=0;}
}
}
这个就可以了,你看看,不明白留言。
㈣ 如何用c语言找出1~999中的所有回文数
依照数学定义,可以得知1-999中的回文数包括三类:
1 一位数。只有一位,每个都是回文数。
2 两位数。个位和十位相同的两位数是回文数,即形式为aa的两位数,a值为1-9。
3 三位数。个位和百位相同的三位数都是回文数,即形式为aba的三位数,a值为1-9,b值为0-9。
综合以上规律,可以写出以下程序:
#include<stdio.h>
intmain()
{
inti,j;
for(i=1;i<10;i++)
{
printf("%d,",i);//一位数
printf("%d%d,",i,i);//两位数
for(j=0;j<10;j++)
printf("%d%d%d,",i,j,i);//三位数
printf(" ");//为方便阅读结果,加一个换行。
}
return0;
}
该函数输出为:
㈤ C语言题目: 求1-1000以内回文数之和
首先要了解回文数的概念:比如:12321
,25852等等。所以编程的步骤:
先定义一个数组(0-10000);再定义另一个数组用来保存回文数,在此可以用调用含数;然后求出所有回文数;最后用一个循环把它们全部加起来,输出就好了。
㈥ c语言填空,输出1000以内回文数,回文数就是正着反着读都一样,比如11,383,585
y==x
b=10*b+m
--------------------------
解释如下: 照这个程序的话,int rev(int a)函数的作用是实现数字的翻转,其中a是要翻转的数,例如 345,翻转城543,如果是回文数的话,翻转后还是同一个数,例如121翻转后还是121。
因此y==x,是判断翻转后还是不是同一个数,是的话,这个数就是回文数。
而怎么实现翻转呢,转到rev函数中,获得数字每个位上的数,然后重组即可。 m=a%10;这是获得个位上的数,a=a/10;这是获得十位上的数字。这里采用了循环,a如果是两位数,循环一次即可;如果a是三位数,a=a/10;操作使得 a又成了两位数,所以重复上面的操作,得到百位的数字,最后重组得到b即为翻转后的数字。
例如以345这个数字为例,
1.m=a%10;->m=5;
2.a=a/10;->a=34;
3.b=10*b+m;->b=5;
4.因为a=34 !=0,所以再执行一次循环
5.m=a%10;->m=4;
6.a=a/10;->a=3;
7.b=10*b+m;->b=54;
8.因为a=3!=0,所以再执行循环
9.m=a%10;->m=3;
10.a=a/1;->a=0;
11.b=10*b+m;->b=543;
12.因为a=0了,所以跳出循环,返回b=543,翻转成功!
如楼上所说,int m,b=0;b如果不赋值的,无法执行b=10*b+m;所以程序会报错。
㈦ c语言中求1000以内的回文数的程序
#include<stdio.h>
int main()
{
int i,n,m,count=0;
printf("所有的回文数字如下:\n");
for(i=1;i<=1000;i++)
{
n=i;
m=0;
while(n)
{
m=m*10+n%10;
n/=10;
}
if(m==i)
{
printf("%d ",m);
count++;
}
}
printf("\n共%d个\n",count);
getchar();
return 0;
}
㈧ 用C语言做1、请打印出大于1000的前10个回文数,并将其输入到“1.txt”中,数之间用空格隔开; 在线等 急
#include"stdio.h"
inthuiwen(intn)
{
intm=0;
intt=n;
while(t)
{
m=m*10+t%10;
t/=10;
}
returnm==n;
}
voidmain()
{
inti,arr[10];
intcnt=0;
for(i=1000;cnt<10;i++)
{
if(huiwen(i))
{
arr[cnt++]=i;
}
}
FILE*fp;
fp=fopen("1.txt","w");
if(fp==NULL)
{
printf("filecannotopen ");
return;
}
for(i=0;i<10;i++)
fprintf(fp,"%5d",arr[i]);
fclose(fp);
}
㈨ 急求1到1000内的回文素数(c语言),好的话我会另加悬赏分
试试这个,我运行过了:
#include <stdio.h>
#include <math.h>
int HunWen(int n);
int SuShu(int n);
int main(int argc, char *argv[])
{
int i;
for (i = 10; i < 1000; i++)
{
if (HunWen(i) && SuShu(i))
{
printf("%d\t", i);
}
}
return 0;
}
int HunWen(int n)
{
int i, t = n, bit = 0;
int a[5];
while (t > 0)
{
a[bit++] = t % 10;
t /= 10;
}
for (i = 0; i < bit/2; i++)
{
if (a[i] != a[bit-i-1])
{
break;
}
}
if (i == bit/2)
{
return 1;
}
else
{
return 0;
}
}
int SuShu(int n)
{
int i;
for (i = 2; i < n; i++)
{
if (n % i == 0)
{
break;
}
}
if (i == n)
{
return 1;
}
else
{
return 0;
}
}
运行结果是:
11 101 131 151 181 191 313 353 373 383
727 757 787 797 919 929 Press any key to continue
㈩ 求用C语言求1000以内的回文素数,要在Visual C++6.0的环境里运行,谢谢啦
/*
回文素数——指对一个素数n从左到右和从右到左读其结果是一样
的,既称为该素数为回文素数。绝对素数——一个素数当它的数字位
置对换后仍为素数,这样的数称之为绝对素数。现编程实现:输入一
个整数,如果为奇数,找出不超过1000的回文素数和不超过100的绝
对素数。如果为10-20之间的偶数,将其分解为两个素数之和
*/
#include
void main(void)
{
int prime(int);
int n,i;
printf("输入一个数n: ");
scanf("%d",&n);
if(n%2)
{
for(i=100;i<1000;i++)
if(prime(i)&&prime(i%10*100+((i/10)%10)*10+i/100))
printf("%6d ",i);
}
else if((n>=10)&&(n<=20))
for(i=2;i<=n/2;i++)
if(prime(i)&&prime(n-i))
printf("%8d=%8d+%8d\n",n,i,n-i);
return;
}
int prime(int n)
{
int i;
for(i=2;i
评论
0
0
0
加载更多