鱼C论坛

 找回密码
 立即注册
查看: 4259|回复: 8

这是少了什么?

[复制链接]
发表于 2013-9-5 10:37:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#include<stdio.h>
#include<math.h>
int main()  
{  
  int num,indiv,ten,hundred,thousand,ten_thousand,place;  
  printf("请输入一个0~99999之间的整数:  ");
  scanf("%d",&num);
  if (num>9999)
   place=5;
  else if (num>999)
   place=4;
  else if (num>99)
   place=3;
  else if(num>9)
   place=2;
  else  place =1;
  printf("此数位数为:%d\n",place);  
  printf("此数的每一位分别是:");
  ten_thousand=num/10000;
  thousand=(int)(num-ten_thousand*10000)/1000;
  hundred=(int)(num-ten_thousand*10000-thousand*1000)\100;
ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)\10;
  indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);  
   switch(place)
   {
   case 5:printf("%d,%d,%d,%d,%d\n",ten_thousand,thousand,hundred,ten,indiv);
       printf("此数逆序输出为%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);break;
   case 4:printf("%d,%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
    printf("此数的逆序输出为%d,%d,%d,%d\n",indiv,ten,hundred,thousand); break;
   case 3:printf("%d,%d,%d\n",hundred,ten,indiv);
       printf("此数的逆序输出为%d,%d,%d\n",indiv,ten,hundred); break;
   case 2:printf("%d,%d\n",ten,indiv);
       printf("此数的逆序输出为%d,%d\n",indiv,ten); break;
   case 1:printf("%d\n",indiv);
       printf("此数的逆序输出为%d\n",indiv); break;
   }
   
}
此程序我一运行它就提示我语法错误少了分号,错误提示行就是我用红色标出来的那里,但我分号一个都没掉呀,也看不出到底哪里出了问题晕晕晕

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2013-9-5 11:15:46 | 显示全部楼层
第一,thousand=(int)(num-ten_thousand*10000)/1000;
  hundred=(int)(num-ten_thousand*10000-thousand*1000)\100;
你分清斜杠和反斜杠了吗?除号是什么?
第二switch 没有defualt
第三,main函数没有返回值,虽然编译器会defualt返回0,但这是坏习惯
第四,case 4:printf("%d,%d,%d,%d,%d\n",thousand,hundred,ten,indiv);
参数个数个参数的格式说明符的个数不匹配,多了个%d
第五整个代码没有用到math头文件里面的函数,所有这个include是多余的,你自己不知道为啥就很无谓的include了math函数库
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-5 12:26:51 | 显示全部楼层
错了这么多呀,太粗心了吧,做程序员一定要细心哟!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-7 10:15:24 | 显示全部楼层

第一个是我粗心打错了。第二个书上说switch语句可以没有default。第三我无话可说,小鱼老师视频上没教我用返回值,不会用,谢谢。第四,我不知道我case错在哪里了,麻烦说详细一点点。第五,我一看题目第一反应就是和数学有关,小鱼老师说#include<stdio.h>本可以不写,但大家还是保持好习惯给写上,所以我想既然我觉得和数学有关,写上总比不写好,也不会影响程序,这就是我为什么把math给写在头文件里的原因。
多谢你的指点!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-7 10:33:33 | 显示全部楼层
学习学习呵呵:loveliness:
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-10 23:31:04 | 显示全部楼层
函数类型的定义是指向返回值的,main函数用void定义吧
default的用途了解就好不一定要用
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-11 00:10:44 | 显示全部楼层
看不出到底哪里出了问题
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-9-11 00:45:00 | 显示全部楼层
case 5:  又多了2个%d
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-11 09:49:02 | 显示全部楼层
″梦里花 发表于 2013-9-11 00:45
case 5:  又多了2个%d

你难道看不出来case 5本就要输出5个数据吗大哥?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-6 03:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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