0
2
已采纳
if(wei[0]==0)
{
cout<<wei[i];
}
你的这一句话是想判断首位是否为0,然而却是错误百出。
首先,你的数组是从1开始的,wei[0]是个随机数,你拿它判断当然不对。
其次,撇开上面的因素,你的逻辑上也有问题,你判断数组第一个元素是否为0,但是这样是有问题的,你想,如果第一个元素等于0,你才输出,否则你就不输出。这样的话,如果第一个元素不为0(这种情况占大多数),你将会什么都不输出,自然不符合题意。你之所以能拿到80分,还是托了wei[0]是随机数的福,如果你从0开始,你一分都没有。不信你把第十行的int i=1改成i=0试试。
这一步,你这样判断太简单了,应该要第一个元素不是0或者i!=1才能输出,你把它搞反了。
应该这样写:
if(wei[i]!=0 || i!=1)
{
cout<<wei[i];
}
便于理解,也可以这样写:
if(!(wei[i]==0 && i==1))
{
cout<<wei[i];
}
就是两个条件都不满足才输出,否则就不输出。
另外,你的思路也非常不好,应该用一个变量,将每次取出的最后一位组合成一个数。
while(n!=0)
{
a=a*10+n%10;
n/=10;
}
这个思路应该不难理解,如果不行的话,老师也应该讲过。
望采纳!
0
我是用do while做的
定义整型变量n,s=0;
输入n
if(n<0)printf("-");
n=abs(n);
do
{
s=s*10+n%10;
n/=10;
}while(n!=0);
printf("%d\n",s);
核心代码
头文件
#include<iostream>
#include<cstdio>
#include<cmath>
0
0