鱼C论坛

 找回密码
 立即注册
查看: 3047|回复: 1

[已解决]一个分段函数

[复制链接]
发表于 2022-10-12 19:52:02 | 显示全部楼层 |阅读模式

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

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

x
  1. #include<stdio.h>
  2. #define t 250
  3. int main()
  4. {       
  5.         int c(int);
  6.         float  s;
  7.         int i=1;
  8.         scanf("%f",&s);
  9.         if(s<250)
  10.         {
  11.                 printf("没有折扣");
  12.         }
  13.         else
  14.         {        if(s<3000)
  15.                 {
  16.                        
  17.                        
  18.                                 for(i;!(s<(float)c(i+1)&&s>=(float)c(i));i++)
  19.                                 {
  20.                                         ;
  21.                                 }
  22.                        
  23.                         printf("%d\n",i);
  24.                 }
  25.                        
  26.                 else
  27.                 printf("15%%折扣");
  28.         }
  29.                 int a=i;
  30.                 if(a=1)
  31.                         {
  32.                                 printf("2%%折扣");
  33.                         }
  34.                 if(a=2)
  35.                         {
  36.                                 printf("5%%折扣");
  37.                         }       
  38.                 if(a=3)
  39.                         {
  40.                                 printf("8%%折扣");
  41.                         }
  42.                 if(a=4)
  43.                         {
  44.                                 printf("10%%折扣");
  45.                         }

  46.        
  47.         return 0;
  48. }
  49. int c(int x)
  50. {
  51.         int z;
  52.         z=2^(x-1)*t;
  53.         return z;
  54. }
复制代码


不同范围里的s有不同折扣,思路是求出s在哪个范围里,用i表示,但运行结果把i所有的对应情况都打印了
最佳答案
2022-10-12 20:11:46
  1. #include<stdio.h>

  2. #define t 250

  3. int c(int x)
  4. {
  5.         int z;
  6.         z=2^(x-1)*t;
  7.         return z;
  8. }

  9. int main()
  10. {        
  11.         float  s                                                      ;
  12.         int i=1                                                       ;
  13.         scanf("%f",&s)                                                ;
  14.         if(s<250) {
  15.                 printf("没有折扣");
  16.         } else {
  17.                 if(s < 3000) {
  18.                         for(i;!(s<(float)c(i+1)&&s>=(float)c(i));i++) ;
  19.                         printf("%d\n" , i)                            ;
  20.                 } else {
  21.                         printf("15%%折扣")                            ;
  22.                 }
  23.                 int a = i                                             ;
  24.                 if(a == 1) printf("2%%折扣")                          ;
  25.                 else if(a == 2) printf("5%%折扣")                     ;
  26.                 else if(a == 3) printf("8%%折扣")                     ;
  27.                 else if(a == 4) printf("10%%折扣")                    ;
  28.         }
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-10-12 20:11:46 | 显示全部楼层    本楼为最佳答案   
  1. #include<stdio.h>

  2. #define t 250

  3. int c(int x)
  4. {
  5.         int z;
  6.         z=2^(x-1)*t;
  7.         return z;
  8. }

  9. int main()
  10. {        
  11.         float  s                                                      ;
  12.         int i=1                                                       ;
  13.         scanf("%f",&s)                                                ;
  14.         if(s<250) {
  15.                 printf("没有折扣");
  16.         } else {
  17.                 if(s < 3000) {
  18.                         for(i;!(s<(float)c(i+1)&&s>=(float)c(i));i++) ;
  19.                         printf("%d\n" , i)                            ;
  20.                 } else {
  21.                         printf("15%%折扣")                            ;
  22.                 }
  23.                 int a = i                                             ;
  24.                 if(a == 1) printf("2%%折扣")                          ;
  25.                 else if(a == 2) printf("5%%折扣")                     ;
  26.                 else if(a == 3) printf("8%%折扣")                     ;
  27.                 else if(a == 4) printf("10%%折扣")                    ;
  28.         }
  29. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-24 08:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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