突然发现,csdn很多都是伸手党。

qq_45687091 2019-10-17 11:50:06
回答了问题然后拿了答案就跑、也从来不结贴。 不在乎这点积分,只是觉得不在乎自己的劳动成果,打了挺久的代码,回答了问题石沉大海。 顺便问一下这一段代码,怎么优化,太长太拖沓了感觉。 #include <stdio.h> #include <stdlib.h>//rand的头文件 int main() { int b;//a:b: int a=rand()%1000;//通过随机数模拟老师给出的数 //范围(0~1000) int i;//六次机会,计数 printf("老师已经给出了一个数,请根据提示猜出所给数"); if(a>0&&a<10)//给出提示 printf("一位数\n"); if(a>=10&&a<=99) { printf("两位数\n"); if(a%10==1) printf("个位数是1\n"); else if(a%10==2) printf("个位数是2\n"); else if(a%10==3) printf("个位数是3\n"); else if(a%10==4) printf("个位数是4\n"); else if(a%10==5) printf("个位数是5\n"); else if(a%10==6) printf("个位数是6\n"); else if(a%10==7) printf("个位数是7\n"); else if(a%10==8) printf("个位数是8\n"); else if(a%10==9) printf("个位数是9\n"); } if(a>=100&&a<=999) //三位数 { printf("三位数\n"); if(a/100==1) //一百 { printf("1*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==2) //200 { printf("2*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==3) //300 { printf("3*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==4) //400 { printf("4*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==5) //500 { printf("5*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==6) //600 { printf("6*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==7) //700 { printf("7*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==8) //800 { printf("8*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } if(a/100==9) //900 { printf("9*"); if(a%10==1) printf("1\n"); else if(a%10==2) printf("2\n"); else if(a%10==3) printf("3\n"); else if(a%10==4) printf("4\n"); else if(a%10==5) printf("5\n"); else if(a%10==6) printf("6\n"); else if(a%10==7) printf("7\n"); else if(a%10==8) printf("8\n"); else if(a%10==9) printf("9\n"); } } printf("please input your number:"); i=0; while(scanf("%d",&b)) { i=++i;//每输入一次消耗一次机会 if(b!=a && i!=6) { if(i!=5) printf("您还剩%d次机会!\n",6-i); else printf("您还剩最后一次机会!\n请好好把握\n"); printf("please write again:"); } else if(i==6) {printf("You are lost.\n"); printf("Done!Please try again!\n"); break; } else { if(i==1) printf("龟龟,你也太厉害了吧!\n一次就猜中了!\n"); printf("You are right!Goal!\n"); break; } } return 0; }
...全文
106 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
wowpH 2019-10-18
  • 打赏
  • 举报
回复
第一次见这种写法,,,,
nice_cxf 2019-10-18
  • 打赏
  • 举报
回复
a%10计算这么多次,要先用个变量算一下,直接printf带%d参数就行了,不需要这么多if
qq_45687091 2019-10-18
  • 打赏
  • 举报
回复
引用 8 楼 jiht594 的回复:
int arr[] = {0,1,2,3,...,9}
余数 = a % 10;
printf("%d\n", arr[余数]);

能短点
直接把余数赋值进去不直接好了嘛,用数组就多了一步了吧
qq_45687091 2019-10-18
  • 打赏
  • 举报
回复
引用 7 楼 fireyou 的回复:

if(a>=10&&a<=99)
{
    printf("个位数是%d\n, a%10");
}
else if(a>=100&&a<=999)
{
    printf("%d\n", a/100);
    printf("%d\n", a%10);
}
if(a>=10&&a<=99) //两位数 printf("两位数\n个位数:%d\n",a%10); if(a>=100&&a<=999) //三位数 printf("三位数\n%d*%d\n",a/100,a%10); 这样写的,应该更短,把两个放一块
jiht594 2019-10-18
  • 打赏
  • 举报
回复
int arr[] = {0,1,2,3,...,9}
余数 = a % 10;
printf("%d\n", arr[余数]);

能短点
fireyou 2019-10-18
  • 打赏
  • 举报
回复

if(a>=10&&a<=99)
{
    printf("个位数是%d\n, a%10");
}
else if(a>=100&&a<=999)
{
    printf("%d\n", a/100);
    printf("%d\n", a%10);
}
liups 2019-10-18
  • 打赏
  • 举报
回复
引用 5 楼 CSDN新手乐园常驻人口 的回复:
[quote=引用 3 楼 fireyou 的回复:]楼上的是好办法 不用if, 直接 printf("个位数是%d\n, a%10");
可是三位数和两位数给的条件不一样啊 [/quote] 你不可以自己研究一下吗?至少每一位可以类似的写法嘛
qq_45687091 2019-10-18
  • 打赏
  • 举报
回复
引用 3 楼 fireyou 的回复:
楼上的是好办法 不用if, 直接 printf("个位数是%d\n, a%10");
可是三位数和两位数给的条件不一样啊
qq_45687091 2019-10-18
  • 打赏
  • 举报
回复
哇,谢谢,这样子一写少一半啊
fireyou 2019-10-18
  • 打赏
  • 举报
回复
楼上的是好办法 不用if, 直接 printf("个位数是%d\n, a%10");
liups 2019-10-18
  • 打赏
  • 举报
回复
引用 1 楼 CSDN新手乐园常驻人口 的回复:
除了那个条件可以写成switch语句,还有啥可以优化的
if(a%10==2) printf("2\n"); 这种语句太多了,难道不可以这样写吗: printf("%d\n",a%10); if也不需要了
jiht594 2019-10-18
  • 打赏
  • 举报
回复
引用 10 楼 CSDN新手乐园常驻人口 的回复:
[quote=引用 8 楼 jiht594 的回复:]int arr[] = {0,1,2,3,...,9}
余数 = a % 10;
printf("%d\n", arr[余数]);

能短点
直接把余数赋值进去不直接好了嘛,用数组就多了一步了吧[/quote]
没错.
不过如果数据没有规律, 就得用数组了. 比如int arr[] = {10,111,22,36,...,9}
qq_45687091 2019-10-18
  • 打赏
  • 举报
回复
引用 12 楼 wowpH 的回复:
第一次见这种写法,,,,
初学者,low确实挺low
喜欢做我自己 2019-10-18
  • 打赏
  • 举报
回复
我来吐槽下,楼主说的不错,回了好多帖子,很多问题都解决了,但大部分就是不结贴,很无语
qq_45687091 2019-10-17
  • 打赏
  • 举报
回复
除了那个条件可以写成switch语句,还有啥可以优化的

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧