输入8个正整数,输出其中所有的“对称数”,并求“对称数”的个数。

roujennie 2019-10-25 07:51:06
可以帮我看看应该怎么改吗?我知道有很多错误,但我不知道怎么改。。不好意思
#include<stdio.h>
#include<string.h>
main()
{
int i,j,sum,k,n=0;
char a[8];
for(i=0;i<8;i++)scanf("%d",&a[i]);
for(i=0;i<8;i++)
{
n=strlen(a[i]);
for(j=0;j<=n/2;j++)
{
if(str(a[j])!=str(a[n-j-1]))
{
k=0;break;
}
}
if(k!=0)
{
sum=sum+1;
printf("%d",a[i]);
}

}
printf("对称数个数:%d",sum);


}
...全文
472 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 18 楼 wowpH 的回复:
[quote=引用 17 楼 ljn20010724 的回复:]
谢谢你啊,我自己再试试

不客气,希望下次发代码能按照格式发就行。[/quote]
#include<stdio.h>
main()
{
int i,j,sum=0,k,n=1,a[8],b[10],count=0;
for(i=0;i<8;i++)scanf("%d",&a[i]);
for(i=0;i<8;i++)
{
for(j=0;n!=0;j++)
{
n=a[i]%10;
count=count+1;
if(a[i]!=a[count-1])
{
k=0;break;
}
if(k!=0)
{
sum=sum+1;
printf("%d",a[i]);
}
}

}
printf("对称数个数:%d",sum);


}
这是我改的代码,但它只能输出一个9,个数也是1个,可是答案有4个
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 17 楼 ljn20010724 的回复:
谢谢你啊,我自己再试试
不客气,希望下次发代码能按照格式发就行。
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 16 楼 wowpH的回复:
[quote=引用 15 楼 ljn20010724 的回复:] [quote=引用 14 楼 wowpH的回复:]要想得到一个数字的长度,1、可以转成字符串。2、循环除10,用个int型变量计数。
噢噢噢,是不是整除10,看余数有几位就可以计算它的长度啦?[/quote]right[/quote] 谢谢你啊,我自己再试试
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 15 楼 ljn20010724 的回复:
[quote=引用 14 楼 wowpH的回复:]要想得到一个数字的长度,1、可以转成字符串。2、循环除10,用个int型变量计数。
噢噢噢,是不是整除10,看余数有几位就可以计算它的长度啦?[/quote]right
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 14 楼 wowpH的回复:
要想得到一个数字的长度,1、可以转成字符串。2、循环除10,用个int型变量计数。
噢噢噢,是不是整除10,看余数有几位就可以计算它的长度啦?
wowpH 2019-10-25
  • 打赏
  • 举报
回复
要想得到一个数字的长度,1、可以转成字符串。2、循环除10,用个int型变量计数。
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 11 楼 ljn20010724 的回复:
引用 9 楼 wowpH的回复:
[quote=引用 7 楼 ljn20010724 的回复:] 这条语句我是跟在for语句后面的,它们在一行
这和在哪儿没关系。把你的输入数据发出来。
9 26 262 2621 1232 14641 251 8118[/quote]那就好说了。错的有点离谱。 你的a的类型是char型的。而char型的范围是-128~127。很明显越界了。 所以要改成int型的。那么现在又有问题了。strlen只能计算字符串的长度。而int型的不是字符串。所以不能用这个函数。
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 10 楼 wowpH的回复:
strlen函数是检测到'\0'结束,而你的代码没有这个,所以报错
好的,那所以这一题我不能用这个函数来计算字符串长度是吧?
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 9 楼 wowpH的回复:
引用 7 楼 ljn20010724 的回复:
这条语句我是跟在for语句后面的,它们在一行
这和在哪儿没关系。把你的输入数据发出来。
9 26 262 2621 1232 14641 251 8118
wowpH 2019-10-25
  • 打赏
  • 举报
回复
strlen函数是检测到'\0'结束,而你的代码没有这个,所以报错
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 7 楼 ljn20010724 的回复:
这条语句我是跟在for语句后面的,它们在一行
这和在哪儿没关系。把你的输入数据发出来。
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 3 楼 wowpH 的回复:
[quote=引用 2 楼 ljn20010724 的回复:]
[quote=引用 1 楼 wowpH的回复:]CSDN论坛新手指南

什么意思??????[/quote][/quote]
我还想问一下,这些错误是什么原因?
roujennie 2019-10-25
  • 打赏
  • 举报
回复
这条语句我是跟在for语句后面的,它们在一行
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 5 楼 wowpH 的回复:
这里,你想输入的是字符还是数字。从后面的代码看应该是输入字符,那么就需要将%d改为%c
	char a[8];
	for (i = 0; i < 8; i++) {
		scanf("%d", &a[i]);
	}
为啥我发的代码又这个框框,而你的没有呢,这是个问题
wowpH 2019-10-25
  • 打赏
  • 举报
回复
这里,你想输入的是字符还是数字。从后面的代码看应该是输入字符,那么就需要将%d改为%c
	char a[8];
	for (i = 0; i < 8; i++) {
		scanf("%d", &a[i]);
	}
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 3 楼 wowpH的回复:
[quote=引用 2 楼 ljn20010724 的回复:] [quote=引用 1 楼 wowpH的回复:]CSDN论坛新手指南
什么意思??????[/quote][/quote] 在上面我有粘贴代码啊
wowpH 2019-10-25
  • 打赏
  • 举报
回复
引用 2 楼 ljn20010724 的回复:
[quote=引用 1 楼 wowpH的回复:]CSDN论坛新手指南
什么意思??????[/quote]
roujennie 2019-10-25
  • 打赏
  • 举报
回复
引用 1 楼 wowpH的回复:
CSDN论坛新手指南
什么意思??????
wowpH 2019-10-25
  • 打赏
  • 举报
回复

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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