小白求大神帮忙看看,应该挺简单的花不了大神几分钟时间

小菜鸟 2019-04-17 09:46:16
求10-200回文数要求必须利用函数,自己写的不套在函数里就是对的,套在函数里最后一行会多出一个200,求大神看看咋回事。。。 #include<stdio.h>
int cnm(int p,int q)
{
int i,a,b,c;
for(i=p;i<=q;i++)
{
a=i/100;
b=i/10-a*10;
c=i-100*a-b*10;
if(i<100&&b==c)
printf("%d\n",i);
else if(i>100&&a==c)
printf("%d\n",i);
}
}
void main()
{


printf("%d",cnm(10,200));

return 0;
}
...全文
89 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
好运萝 2019-04-18
  • 打赏
  • 举报
回复
计算个位数 直接对10取余就行了

c = i % 10;
格式问题很大 一定要注意缩进啊 这样写出来自己能看懂吗
  • 打赏
  • 举报
回复
int cnm,你这样肯定要出问题啊
自信男孩 2019-04-18
  • 打赏
  • 举报
回复
#include<stdio.h>

int cnm(int p,int q)
{
int i,a,b,c;
for(i=p;i<=q;i++)
{
a=i/100;
b=i/10-a*10;
c=i-100*a-b*10;
if(i<100&&b==c)
printf("%d\n",i);
else if(i>100&&a==c)
printf("%d\n",i);
}

}

int check_palindrome_no(int no);
void print_palindrome(int start, int end)
{
int i, flag;

printf("Palinkdrome list: ");
for (i = start; i <= end; i++) {
flag = check_palindrome_no(i);
if (flag)
printf("%d ", i);
}
putchar(10);
}

int check_palindrome_no(int no)
{
int num = 0, tmp;
tmp = no;

while (tmp) {
num = num * 10 + tmp % 10;
tmp /= 10;
}

if (no == num)
return 1;
else
return 0;
}

//void main()
int main()
{


print_palindrome(10, 200);

//printf("%d",cnm(10,200));

return 0;
}


供参考!
拥抱Linux 2019-04-17
  • 打赏
  • 举报
回复
(1)自定义函数里面有输出了,还在main()里面输出什么?不是画蛇添足么?
(2)为自定义函数起名的时候,注意一下影响,不要出口成脏,影响编译器的心情!
(3)在上面代码的基础上微调了一下,见下方所示:

#include <stdio.h>

void prime(int p, int q)
{
int i, a, b, c;
for (i = p; i <= q; i++) {
a = i / 100;
b = i / 10 - a * 10;
c = i - 100 * a - b * 10;
if (i < 100 && b == c)
printf("%d\n", i);
else if (i > 100 && a == c)
printf("%d\n", i);
}
}
int main()
{
prime(10, 200);
return 0;
}

nongen 2019-04-17
  • 打赏
  • 举报
回复
回文数,小于100,先得余数,再减余数,除10,得到的与余数相同,则回文。大于100小于999,div 100,得数与%10相同,则回文

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧