C++将一个输入位数不确定的正整数按三位分节格式输出,求改
#include<iostream>usingnamespacestd;voidfenjie(char*p,int&n,int&i){i=1;while(n){if(i%...
#include<iostream>using namespace std;void fenjie(char *p,int &n,int &i){ i=1; while(n) { if(i%4!=0) { *p=n%10+'0'; n=n/10; } else *p=','; p++; i++; } do { p--; i--; } while(i>1); }int main(){ int n,j=0,i; char a[81]; cin>>n; fenjie(a,n,i); while(n!=0) { cout<<a[j]; j++; } cout<<endl; return 0;}
以上程序运行不出结果 正确结果应为7,654,321
ps 若main函数为以下形式结果如下
int main(){ int n,j=0,i; char a[81]; cin>>n; fenjie(a,n,i); cout<<a; cout<<endl; return 0;}
结果
求解释原因并改正 展开
以上程序运行不出结果 正确结果应为7,654,321
ps 若main函数为以下形式结果如下
int main(){ int n,j=0,i; char a[81]; cin>>n; fenjie(a,n,i); cout<<a; cout<<endl; return 0;}
结果
求解释原因并改正 展开
6个回答
2014-12-16
展开全部
你把分解改成如下部分
void fenjie(char *p,int &n,int &i)
{
//防止输入数据为0
if(n==0)
{
p[0]='0';
p[1]='\0';
return;
}
i=1;
while(n)
{
if(i%4!=0)
{
p[i-1]=n%10+'0';
n=n/10;
}
else p[i-1]=',';
i++;
}
p[i-1]='\0'; // 字符串结束
// 数据重排
char c;
int j=0;
do
{
i--;
c=p[i-1];
p[i-1]=p[j];
p[j]=c;
j++;
}
while(i>j);
}
输出直接用
cout<<a<<endl;
就可以了
cin>>n;决定了你这个输入数据最大值为0xFFFFFFFF
fenjie(a,n,i);执行完以后 n 的值被改为0了
void fenjie(char *p,int &n,int &i)
{
//防止输入数据为0
if(n==0)
{
p[0]='0';
p[1]='\0';
return;
}
i=1;
while(n)
{
if(i%4!=0)
{
p[i-1]=n%10+'0';
n=n/10;
}
else p[i-1]=',';
i++;
}
p[i-1]='\0'; // 字符串结束
// 数据重排
char c;
int j=0;
do
{
i--;
c=p[i-1];
p[i-1]=p[j];
p[j]=c;
j++;
}
while(i>j);
}
输出直接用
cout<<a<<endl;
就可以了
cin>>n;决定了你这个输入数据最大值为0xFFFFFFFF
fenjie(a,n,i);执行完以后 n 的值被改为0了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询