免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: hzluly
打印 上一主题 下一主题

[C] 一个C语言题目,请大家看一下 [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
11 [报告]
发表于 2003-12-01 17:45 |只看该作者

一个C语言题目,请大家看一下

原帖由 "viggy" 发表:


CC,你写的语言我还不懂说,老师没教到呢。。。
GG以后多多指教~~

老师说KISS~~
K=KEEP
I=IT
S=SIMPLE
S=STUPID

keep it simple, stupid
越简单越好,哈,CCCCCC

怎么你看不懂吗?就是在里面的if语句用了一个?:三元运算符而已。
你c++都学了,没学过c?

论坛徽章:
0
12 [报告]
发表于 2003-12-01 17:49 |只看该作者

一个C语言题目,请大家看一下

有些题目添空比重写难多了

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2003-12-01 17:54 |只看该作者

一个C语言题目,请大家看一下

原帖由 "hzluly" 发表:
if((x >; 0) ? scanf("%d",&x) : (scanf("%d",&x),0))


哈哈,高手。这也想得出来。不错,不错,应该可以的

过奖了,也是给逼出来的。

论坛徽章:
0
14 [报告]
发表于 2003-12-01 17:57 |只看该作者

一个C语言题目,请大家看一下

这里还有一个题目:利用无穷级数计算圆周率如下:π=4-4/3+4/5-4/7+4/9-4/11。。。。。,要计算多少项才能得到3.14,3.141,3.1415,3.14159?

我编了一个函数处理,应该可以的。但是好像不管多少项都得不出3.14,3.141,3.1415,3.14159等数据,
  void aaaa(float *ss, int n)
   {
     float s=0.0,w,f=-1.0;
     int i=0;
     for(i=0;i<n;i++)
     {
       f=-1*f;             /*每次乘以-1,则符号反复变化*/
       w=4*f/(2*i+1); /*得出单项值*/
       s+=w;   /*累积*/
     }
     *ss=s;
    }
viggy 该用户已被删除
15 [报告]
发表于 2003-12-01 17:57 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
viggy 该用户已被删除
16 [报告]
发表于 2003-12-01 18:00 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
17 [报告]
发表于 2003-12-01 18:05 |只看该作者

一个C语言题目,请大家看一下

原帖由 "viggy" 发表:


没学过哦,我只是刚刚学C++
学过J++, VB ,现在学JAVA,可能以后学C吧。。。。。。   
不要对我那么凶说~~~     

呵呵,学这么多了,你学的我都没学过。
我只学过c/c++。
交个朋友吧。       
viggy 该用户已被删除
18 [报告]
发表于 2003-12-01 18:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
19 [报告]
发表于 2003-12-01 22:47 |只看该作者

一个C语言题目,请大家看一下

lenovo  兄的代码妙极,堪与纳兰词相比。兄弟自愧不如。我的一段代码如下,很勉强,献丑了。

int
main ()
{
        int x, i=0, j=0;
        scanf ("%d", &x);
        while (i+=(x>;0),j+=(x<0), scanf ("%d", &x), x!=0)
        {
                if (i--||1)
                i++;
                else
                j++;
        }
        printf ("+: %d", i);
        printf ("-: %d", j);

}

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
20 [报告]
发表于 2003-12-02 10:16 |只看该作者

一个C语言题目,请大家看一下

原帖由 "hzluly" 发表:
这里还有一个题目:利用无穷级数计算圆周率如下:π=4-4/3+4/5-4/7+4/9-4/11。。。。。,要计算多少项才能得到3.14,3.141,3.1415,3.14159?

我编了一个函数处理,应该可以的。但是好像不管多少项都得不出3.14?.........
计算机的精度是有限的,太小的数字是表示不出来的。
还有你做循环时,最好把求的值和你希望得到的值相减,然后取它们的
绝对值,如果结果在一个很小的数以内,比如1e-6(我的计算机能表示的最小的数字),那就可以认为这个值就可以了。下面是我改的一个。

  1. #include <stdio.h>;
  2. #include <math.h>;

  3. void pi(double *ss, int *n);

  4. int main()
  5. {
  6.         double sum = 0;
  7.         int counter;
  8.         printf("pi1 = %f\n",pi1);
  9.         pi(&sum, &counter);
  10.         printf("sum = %f,counter = %d\n",sum,counter);
  11.         return 0;
  12. }

  13. void pi(double *ss, int *n)
  14. {
  15.         double s = 0.0, w, f = -1.0;
  16.         int i = 0;
  17.         long j = 1;
  18.         while(fabs(s - 3.14) >; 1e-6){
  19.                 f *= -1;
  20.                 w = 4*f/(2*i+1);
  21.                 i++;
  22.                 j++;
  23.                 s += w;
  24.         }
  25.         *n = i;
  26.         *ss = s;       
  27.        
  28. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP