免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 2495 | 回复: 21
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-01 17:13 |只看该作者 |正序浏览
大学毕业后好久没有碰这些DD了,最近有朋友让我看看一些题目。还蛮有意思的。下面这个题目,做不出来,感觉好像题目错了。
          printf("please input a inteser(0:ecd);";
               scanf("%d",&x);
感觉这两句应该在循环里面的,是不是?
   
(添空格)输入一批整数,统计出其中的正数和负数个数,输入0则结束。      
     main(  )
           {
               int _____________;
               printf("please input a integer(0:end);";
               scanf("%d",&x);
               while(_____________)
               {
                    if(________)
                         i+=1;
                             else
                         j+=1;
               }
               printf("%d ;%d",i,j);
           }

论坛徽章:
0
22 [报告]
发表于 2003-12-02 15:09 |只看该作者

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

原帖由 "unicorns" 发表:
第一道题不是题目出错了就是出题人神经有毛病
第二题倒是经常考的一道c语言题
几乎每考C都有一道类似的题。


同意。第一题应该是出错了吧。虽然能做,可有人会写这种代码么?

论坛徽章:
0
21 [报告]
发表于 2003-12-02 13:44 |只看该作者

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

第一道题不是题目出错了就是出题人神经有毛病
第二题倒是经常考的一道c语言题
几乎每考C都有一道类似的题。

论坛徽章:
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. }
复制代码

论坛徽章:
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);

}
viggy 该用户已被删除
18 [报告]
发表于 2003-12-01 18:10 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

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

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

原帖由 "viggy" 发表:


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

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

论坛徽章:
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;
    }
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP