点哥 帮忙

  • 主题发起人 主题发起人 nuli
  • 开始时间 开始时间
getData.c

int flag=0;
void main()
{
if(flag!=0) getInputData();
}
unsigned int getInputData();
{
chat c;
printf("Please input a positive integer number terminated with a
carriage return (ente)\n .");
for(,c=getchar()!='\n',)
{
if(c<'1'||c>'9')
{
printf("ERROR: That is not an integer. Please try again.\n");
return;
}
}
}

您老看看,有问题么?
 
点哥,你快出现啊。。
 
你们现在学没学指针?


第一个也可以用LOOP循环读取一个字符,每次LOOP之读取一个字符,而不是字符串,然后在LOOP里面判断是否是一个数字位,如果是,就把这位与前面的数字加起来。整数的初始值应该是int_var=0。加第一位i时,int_var=int_var*10+i; 加下一位时,前面阿INT_VAR应该向左移位再加新数字,但公式是一样的

int_var=int_var*10+i;

如果某位是不合法字符,立即跳出循环,给出错误信息。。。
 
最初由 nuli 发布
getData.c

int flag=0;
void main()
{
if(flag!=0) getInputData();
}
unsigned int getInputData();
{
chat c;
printf("Please input a positive integer number terminated with a
carriage return (ente)\n .");
for(,c=getchar()!='\n',)
{
if(c<'1'||c>'9')
{
printf("ERROR: That is not an integer. Please try again.\n");
return;
}
}
}

您老看看,有问题么?
大致是对的。。。:D,你应该用机器调试一把吧。。
 
帮我写写第一个程序吧。 我搞不定。 多谢老大了。
 
唉,早知道我就努力学习了。
 
不可能:o

我这里没有C编译器,你还是自己去调试吧,我靠。。。

我可以给你出出主意。。。。
 
最初由 nuli 发布
赫赫,多些了。
其实第二个也同样有个问题,因为你得到是整数,然后要根据格式输出,所以也是用循环,取出一个一个的DIGIT,并在相关位置加上必要的字符逗号,空格,等等。

我觉得你们老师不变态啊,他出的题目还成。。。,难易合适。。花点时间调试很快就出来了。
 
第三个是把第一个和第二个的功能加起来就成了,你个混混。。:flaming:
 
赫赫,第二个我用的是
outputData.c

outputData(char c,unsigned int d)
int n;
switch(c)
{case',':for(n=0,0<(d=d/1000),++n)
{
}
printf("%d",d);
for(,n>0,n--)
{
printf(",000");
};break;
case'':for(n=0,0<(d=d/1000),++n)
{
}
printf("%d",d);
for(,n>0,n--)
}
你看看丞么?
 
最初由 nuli 发布
赫赫,第二个我用的是
outputData.c

outputData(char c,unsigned int d)
int n;
switch(c)
{case',':for(n=0,0<(d=d/1000),++n)
{
}
printf("%d",d);
for(,n>0,n--)
{
printf(",000");
};break;
case'':for(n=0,0<(d=d/1000),++n)
{
}
printf("%d",d);
for(,n>0,n--)
}
你看看丞么?

程序框架对,可计算不对。。。。。
 
最初由 nuli 发布
出错在那里?
你自己拿个数字去试验,比如
1234567

输出应该是

1,234,567

你的输出是1234567
 
后退
顶部