| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 962 人关注过本帖
标题:为什么呢 运行超时了
只看楼主 加入收藏
苦楝子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-3-18
收藏
 问题点数:0 回复次数:10 
为什么呢 运行超时了
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int i,j;     /*二维数组变量*/
    int m,p;     /*数据个数*/
    int k,b;
    int s=0;
    int a[10][10];
    scanf("%d\n",&m);   /*输入几组测试数据*/
    for(i=0;i<m;i++)
    {
        scanf("%d\n",&p);   /*输入几个数据*/
        for(j=0;j<p;j++)
            scanf("%d",&a[i][j]);
    }
    for(i=0;i<m;i++)
        for(j=0;j<10;j++)
        {
            b=sqrt(a[i][j]);
            for(k=2;k<=b;k++)
                if(a[i][j]%k==0)
                    break;
            if(k>=b+1)
            {
                s=s+a[i][j];
            }
            if(j=9)
                printf("%d\n",s);
        }
}

    说是有可能进入死循环了 我不知道怎么能看出来啊
        这个题目是要求素数之和
搜索更多相关主题的帖子: 数据 测试 include 
2012-04-07 11:58
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 
    scanf("%d\n",&m);   /*输入几组测试数据,scanf("%d\n",&p);放在这里*/
     for(i=0;i<m;i++)
     {
         scanf("%d\n",&p);   /*输入几个数据,这个不应该在循环里面*/
         for(j=0;j<p;j++)
             scanf("%d",&a[i][j]);
     }
     for(i=0;i<m;i++)
         for(j=0;j<10;j++)   /* 这个应该用 j<p 吧? */
 
2012-04-07 12:39
苦楝子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-3-18
收藏
得分:0 
回复 2楼 share32
那个是要输入一组数据有几个数 每组数据个数不一样的
2012-04-07 13:55
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 
你这么编写看着逻辑上就有问题。可能进入死循环

具体说一下这个题目,求什么的素数
2012-04-07 14:14
苦楝子
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2012-3-18
收藏
得分:0 
回复 4楼 share32
描述
现在给你N个数(0<N<1000),现在要求你写出一个程序,找出这N个数中的所有素数,并求和。
输入
第一行给出整数M(0<M<10)代表多少组测试数据
每组测试数据第一行给你N,代表该组测试数据的数量。
接下来的N个数为要测试的数据,每个数小于1000
输出
每组测试数据结果占一行,输出给出的测试数据的所有素数和
样例输入
3
5
1 2 3 4 5
8
11 12 13 14 15 16 17 18
10
21 22 23 24 25 26 27 28 29 30
样例输出
10
41
52
2012-04-07 15:47
embed_xuel
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:58
帖 子:3845
专家分:11385
注 册:2011-9-13
收藏
得分:0 
scanf用得也不对呀

[ 本帖最后由 embed_xuel 于 2012-4-7 16:14 编辑 ]

总有那身价贱的人给作业贴回复完整的代码
2012-04-07 15:51
wuya156
Rank: 2
等 级:论坛游民
帖 子:29
专家分:38
注 册:2010-3-11
收藏
得分:0 
程序代码:
 for(k=2;k<=b;k++)
                if(a[i][j]%k==0)
                    break;
            if(k>=b+1)
            {
                s=s+a[i][j];
            }

这逻辑不对
2012-04-07 16:03
share32
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:214
专家分:663
注 册:2011-12-1
收藏
得分:0 
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
void main (void)
 {
     int m,i,j,a[10][MAXSIZE],y,sum,flag,b[MAXSIZE];
     scanf("%d",&m);           /* 输入组数 */
     for(i=0;i<m;i++)
     {
         scanf("%d",&b[i]);    /* 记录每组数据个数 */
         for(j=0;j<b[i];j++)
            scanf("%d",&a[i][j]);
     }
     for(i=0;i<m;i++)
     {
         sum=0;
         for(j=0;j<b[i];j++)
         {
            flag=1;
            if (a[i][j]==1) flag=0;
            else
            {
                for(y=2;y<a[i][j];y++)  /* 判断素数 */
                    if(a[i][j]%y==0)
                    {
                        flag=0;
                        break;
                    }
            }
            if (flag) sum+=a[i][j];
         }
         printf("%d:%d\n",i+1,sum);
     }
     getche();   
 }


你的看不太明白,看看我这个能否对你有点参考
2012-04-07 17:40
天涯漫
Rank: 2
等 级:论坛游民
帖 子:31
专家分:57
注 册:2012-3-8
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int i,j;     /*二维数组变量*/
    int m,p;     /*数据个数*/
    int k,b;
   
    int a[10][10];
    scanf("%d\n",&m);   /*输入几组测试数据*/
    for(i=0;i<m;i++)
    {   
         int s=0;
        scanf("%d\n",&p);   /*输入几个数据*/
        for(j=0;j<p;j++)
               scanf("%d",&a[i][j]);
           
        for(j=0;j<p;j++)
         {   
             b=(int)sqrt(a[i][j]);
            for(k=2;k<=b;k++)
                if(a[i][j]%k==0)
                    break;
            if(k>=b+1)
            {
                s=s+a[i][j];
            }
            
         }
         if(j==p)
                printf("%d\n",s);
    }
  
}
我这个程序和要求的输出不一样,若想按要求的输出,我觉得应该把s定义为数组,把每组的和先存入s,最后在输出。另外因为你要的是输出每行素数和的结果,因此 s需要在每行都要赋初值,即把S的初始化放在第一个for循环中,否则各行值将会累加。另外由于你的列数是由P确定的,因此在计算素数和时,应把计算放在第二个for循环。
2012-04-07 18:08
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
直接筛一下就过了  可否给个网址?

                                         
===========深入<----------------->浅出============
2012-04-08 16:45
快速回复:为什么呢 运行超时了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043595 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved