鱼C论坛

 找回密码
 立即注册
查看: 880|回复: 2

[已解决]怎样连续输入输出(函数和我打的一样)

[复制链接]
发表于 2021-10-23 13:39:38 | 显示全部楼层 |阅读模式

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

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

x
输入一个整数n,表示后面总共要输入n组测试数据;
然后输入n组测试数据,每组测试数据是一个双精度浮点数x。
输出
根据输入的n组测试数据,对应输出n个输出结果,每个输出结果单独占一行,即每个输出结果后要加换行符
#include <stdio.h>
#include <math.h>
int main()
{
        double x,y;
        int i;
   while(scanf("%lf",&x)!=EOF)
   {
        if(x<0)
        {
                x=abs(x);
                y=x/2;
        }
        else if(x>=0&&x<=10)
        {
                y=3+exp(x);
        }
        else if(x>=10&&x<20)
        {
                y=log10(x);
        }
        else if(x>=20&&x<30)
        {
                y=pow(x,1.5);
        }
        else if(x>=30&&x<50)
        {
                y=pow(x,0.5)-1;
        }
        else
        {
                y=3*cos(x);
        }
        printf("y=%lf",y);       
    }
        return 0;
}
最佳答案
2021-10-23 15:06:30
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.         int i , n                                                                   ;
  6.         printf("enter data number : ")                                              ;
  7.         scanf("%d" , & n)                                                           ;
  8.         if(n > 0) {
  9.                 double x[n] , y[n]                                                  ;
  10.                 for(i = 0 ; i < n ; i ++) {
  11.                         printf("enter x(%d) : " , i + 1)                            ;
  12.                         scanf("%lf" , & x[i])                                       ;
  13.                 }
  14.                 for(i = 0 ; i < n ; i ++) {
  15.                         if(x[i] < 0)  y[i] = abs(x[i]) / 2                          ;
  16.                         else if(x[i] >= 0 && x[i] < 10) y[i] = 3 + exp(x[i])        ;
  17.                         else if(x[i] >= 10 && x[i] < 20) y[i] = log10(x[i])         ;
  18.                         else if(x[i] >= 20 && x[i] < 30) y[i] = pow(x[i] , 1.5)     ;
  19.                         else if(x[i] >= 30 && x[i] < 50) y[i] = pow(x[i] , 0.5) - 1 ;
  20.                         else y[i] = 3 * cos(x[i])                                   ;
  21.                 }
  22.                 for(i = 0 ; i < n ; i ++) printf("%3d : x = %lf , y = %lf\n" , i + 1 , x[i] , y[i]) ;
  23.         }
  24. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. enter data number : 6
  4. enter x(1) : -5
  5. enter x(2) : 5
  6. enter x(3) : 15
  7. enter x(4) : 25
  8. enter x(5) : 35
  9. enter x(6) : 45
  10.   1 : x = -5.000000 , y = 2.500000
  11.   2 : x = 5.000000 , y = 151.413159
  12.   3 : x = 15.000000 , y = 1.176091
  13.   4 : x = 25.000000 , y = 125.000000
  14.   5 : x = 35.000000 , y = 4.916080
  15.   6 : x = 45.000000 , y = 5.708204

  16. D:\00.Excise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-23 15:05:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-10-23 15:06:30 | 显示全部楼层    本楼为最佳答案   
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.         int i , n                                                                   ;
  6.         printf("enter data number : ")                                              ;
  7.         scanf("%d" , & n)                                                           ;
  8.         if(n > 0) {
  9.                 double x[n] , y[n]                                                  ;
  10.                 for(i = 0 ; i < n ; i ++) {
  11.                         printf("enter x(%d) : " , i + 1)                            ;
  12.                         scanf("%lf" , & x[i])                                       ;
  13.                 }
  14.                 for(i = 0 ; i < n ; i ++) {
  15.                         if(x[i] < 0)  y[i] = abs(x[i]) / 2                          ;
  16.                         else if(x[i] >= 0 && x[i] < 10) y[i] = 3 + exp(x[i])        ;
  17.                         else if(x[i] >= 10 && x[i] < 20) y[i] = log10(x[i])         ;
  18.                         else if(x[i] >= 20 && x[i] < 30) y[i] = pow(x[i] , 1.5)     ;
  19.                         else if(x[i] >= 30 && x[i] < 50) y[i] = pow(x[i] , 0.5) - 1 ;
  20.                         else y[i] = 3 * cos(x[i])                                   ;
  21.                 }
  22.                 for(i = 0 ; i < n ; i ++) printf("%3d : x = %lf , y = %lf\n" , i + 1 , x[i] , y[i]) ;
  23.         }
  24. }
复制代码

        编译、运行实况:
  1. D:\00.Excise\C>g++ -o x x.c

  2. D:\00.Excise\C>x
  3. enter data number : 6
  4. enter x(1) : -5
  5. enter x(2) : 5
  6. enter x(3) : 15
  7. enter x(4) : 25
  8. enter x(5) : 35
  9. enter x(6) : 45
  10.   1 : x = -5.000000 , y = 2.500000
  11.   2 : x = 5.000000 , y = 151.413159
  12.   3 : x = 15.000000 , y = 1.176091
  13.   4 : x = 25.000000 , y = 125.000000
  14.   5 : x = 35.000000 , y = 4.916080
  15.   6 : x = 45.000000 , y = 5.708204

  16. D:\00.Excise\C>
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 06:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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