QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1449|回复: 18

问一个非常简单的C语言问题!:)已经解决谢谢!:)

[复制链接]
发表于 2004-10-27 12:40:40 | 显示全部楼层 |阅读模式
题目是:任意输入不多于五位的正整数,要求输出其位数,和反向输出每一位数.
要求用条件语句作!
谢谢了!!!小弟我是新手,请高手赐教.
请给出源代码!谢谢!
发表于 2004-10-27 13:03:25 | 显示全部楼层
关键是你要来干嘛啊?俺不喜欢帮别人做功课的说。
回复

使用道具 举报

发表于 2004-10-27 13:15:32 | 显示全部楼层
[quote:3cc9625763="HOUSCOUS"]关键是你要来干嘛啊?俺不喜欢帮别人做功课的说。[/quote]
严重同意

俺的Shell版里也有些为了应付老师作业的朋友发类似的帖子,俺发现以后坚决不回贴
回复

使用道具 举报

发表于 2004-10-27 13:18:50 | 显示全部楼层
楼主要先自己做做,有问题再问。 :neutral:
回复

使用道具 举报

发表于 2004-10-27 13:26:13 | 显示全部楼层
sagaeon兄,你的签名里的句子:”悔当初,分两地,芹何以堪难相聚“,是”芹“还是”情“啊?
回复

使用道具 举报

发表于 2004-10-27 13:40:54 | 显示全部楼层
MichaelBibby你怎么这么笨啦,这个“芹”摆明了就是名字嘛。
回复

使用道具 举报

发表于 2004-10-27 14:17:06 | 显示全部楼层
[quote:afcf9f529c="Alex_Sune"]MichaelBibby你怎么这么笨啦,这个“芹”摆明了就是名字嘛。[/quote]
......

明白明白
回复

使用道具 举报

 楼主| 发表于 2004-10-27 21:25:53 | 显示全部楼层
我理解!等一会我把我写的源代码发上来!我怎么可能想你们说的那样讷?不过我理解你们 的心情!我是学通信专业的,和C语言没有关系,是因为我想学C语言,胆识教材上有一道这样的题!所以问问,我现在已经差不多写出来了,一会发上来情兄弟们指教!看看还有没有别的算法!
回复

使用道具 举报

 楼主| 发表于 2004-10-27 21:41:52 | 显示全部楼层

我的源代码,但是用GCC编译失败!!

main()
{
int a,b,c,d,e;
long x,f;
scanf("%l\n",x);
  a=x/10000;
  b=x%10000/1000;
  c=x%10000%1000/100;
  d=x%10000%1000%100/10;
  e=x%10000%1000%100%10;
  if(x<=0||x>=10000) printf("error");
  else if(a!=0) printf("it is 5");
        else if(b!=0) printf(""it is 4");
              else if(c!=0) printf("it is 3");
                    else if(d!=0) printf(it is 2");
                          else if(e!=0) printf("it is 1");
  
printf("%d%d%d%d%d",a,b,c,d,e);
f=e*10000+d*1000+c*100+b*10+a;
printf("%l",f);
}

我的编译结果:
[root@fydream fydream]# gcc -o hehe hh.c
hh.c: In function `main':
hh.c:13: error: syntax error before "it"
hh.c:13: error: `it' undeclared (first use in this function)
hh.c:13: error: (Each undeclared identifier is reported only once
hh.c:13: error: for each function it appears in.)
hh.c:13:39: missing terminating " character
hh.c:15:49: missing terminating " character
回复

使用道具 举报

 楼主| 发表于 2004-10-27 21:45:13 | 显示全部楼层

这个是纠正以后的源代码!胆识还是有一个错误!:)谢谢指教!

main()
{
int a,b,c,d,e;
long x,f;
scanf("%l\n",x);
  a=x/10000;
  b=x%10000/1000;
  c=x%10000%1000/100;
  d=x%10000%1000%100/10;
  e=x%10000%1000%100%10;
  if(x<=0||x>=10000) printf("error");
  else if(a!=0) printf("5");
        else if(b!=0) printf("4");
              else if(c!=0) printf("3");
                    else if(d!=0) printf("2");
                          else if(e!=0) printf("1");
  
printf("%d%d%d%d%d",a,b,c,d,e);
f=e*10000+d*1000+c*100+b*10+a;
printf("%l",f);
}

错误提示:
[root@fydream fydream]# gcc -o word word.c
word.c:21:2: warning: no newline at end of file
回复

使用道具 举报

发表于 2004-10-27 23:54:21 | 显示全部楼层
是警告,不是错误
回复

使用道具 举报

发表于 2004-10-28 10:20:25 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2004-10-28 10:23:22 | 显示全部楼层
题目要求是:任意输入不多于五位的正整数,要求输出其位数,和反向输出每一位数.
要求用条件语句作!
我的源代码是:
main()
{
int a,b,c,d,e;
long x,f;
scanf("%l\n",&x);
  a=x/10000;
  b=x%10000/1000;
  c=x%10000%1000/100;
  d=x%10000%1000%100/10;
  e=x%10000%1000%100%10;
  if(x<=0||x>=99999) printf("error");
  else if(a!=0) printf("5");
        else if(b!=0) printf("4");
              else if(c!=0) printf("3");
                    else if(d!=0) printf("2");
                          else if(e!=0) printf("1");
printf("%d%d%d%d%d",a,b,c,d,e);
f=e*10000+d*1000+c*100+b*10+a;
printf("%l",f);
}
这是我的编译和运行结果,不附和要求亚?
[fydream@fydream fydream]$ gcc -o word word.c
[fydream@fydream fydream]$ ./word
2536
error134514274
应该是我输入2536就要输出2536和6352呀?但是这里为什么显示成error134514274谢谢了!小弟是真心想学好LINUX和C语言的,根本不是
什么作业!我不是那种人!谢谢指教!
回复

使用道具 举报

发表于 2004-10-28 13:58:43 | 显示全部楼层
不懂C,不过按你的逻辑用C++写了一遍,如果你只有4位数的话,那a就是0了,你输入2536的话,屏幕上会显示的是02536和63520。那个scanf("%l\n",&x)里的%l是干嘛用的,没找到, 我只知道%ld,, %lu, %lo, %lx,还是等懂C的兄弟来解释吧。  
回复

使用道具 举报

发表于 2004-10-28 14:30:20 | 显示全部楼层
我想你在scanf出错了吧。你试试把x经过scanf后的值输出看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 05:42 , Processed in 0.079619 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表