C语言程序设计题不知道哪里错了求解大神
pta判定结果为个位数零结尾和9位数的时候格式错误但是devc运行后看不出哪里格式错误了代码如下#include<stdio.h>#include<string.h>in...
pta判定结果为个位数 零结尾和9位数的时候格式错误 但是devc运行后看不出哪里格式错误了
代码如下
#include<stdio.h>
#include<string.h>
int main(void)
{char str[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char b[99][99];
int n,i,j=0,flag=0,gongju,count=0,k;
int a[99];
scanf("%d",&n);
gongju=n;
if(gongju<0)
{flag=1;
gongju=-gongju;}
for(i=0;gongju!=0;i++)
{gongju=gongju/10;
count++; } /*检测输入位数段*/
gongju=n;
if(flag==1)
gongju=-gongju;
k=count-1;
for(i=1;i<=count;i++)
{a[k]=gongju%10;
k--;
gongju=gongju/10; } /*存入数组段*/ if(flag==0) /*控制输出拼音段*/ {for(i=0;i<count;i++)
{strcpy(b[j],str[a[i]]);
j++;}
}
else if(flag==1)
{strcpy(b[0],"fu");
j++;
for(i=0;i<count;i++)
{strcpy(b[j],str[a[i]]);
j++;}
}
if(n==0)
{printf("ling");
return 0;}
printf("%s",b[0]);
for(i=1;i<=count;i++)
printf(" %s",b[i]);
return 0; } 展开
代码如下
#include<stdio.h>
#include<string.h>
int main(void)
{char str[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
char b[99][99];
int n,i,j=0,flag=0,gongju,count=0,k;
int a[99];
scanf("%d",&n);
gongju=n;
if(gongju<0)
{flag=1;
gongju=-gongju;}
for(i=0;gongju!=0;i++)
{gongju=gongju/10;
count++; } /*检测输入位数段*/
gongju=n;
if(flag==1)
gongju=-gongju;
k=count-1;
for(i=1;i<=count;i++)
{a[k]=gongju%10;
k--;
gongju=gongju/10; } /*存入数组段*/ if(flag==0) /*控制输出拼音段*/ {for(i=0;i<count;i++)
{strcpy(b[j],str[a[i]]);
j++;}
}
else if(flag==1)
{strcpy(b[0],"fu");
j++;
for(i=0;i<count;i++)
{strcpy(b[j],str[a[i]]);
j++;}
}
if(n==0)
{printf("ling");
return 0;}
printf("%s",b[0]);
for(i=1;i<=count;i++)
printf(" %s",b[i]);
return 0; } 展开
展开全部
输出格式中有个规定:行末没有最后的空格。
你这边的代码最后输出时有个问题:
printf("%s",b[0]);
for(i=1;i<=count;i++)
printf(" %s",b[i]);
count是输入数据的位数,比如输入:123,count的值就等于3,这时候应该输出:b[0],b[1],b[2],你这里是输出:b[0],b[1],b[2],b[3]。当为负数时,输入:123,count的值等于3,但是前面有个“fu”,需要输出:b[0],b[1],b[2],b[3]。
所以实际输出位数应该是:正数=count,负数=count+1
改为如下即可:
printf("%s",b[0]);
if(flag==1) count++;
for(i=1;i<count;i++)
printf(" %s",b[i]);
追问
厉害👍 谢谢大神
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询