标题:为什么呢 运行超时了
只看楼主
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
得分:0 
先把最后的if条件语句改为  j==9
另外j的循环终止条件为p
最后的if条件语句应该为  j==p-1
另外你的a[10][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<p;j++)
        {
            b=sqrt(a[i][j]);
            for(k=2;k<=b;k++)
                if(a[i][j]%k==0)  break;
            if(k>=b+1)  s+=a[i][j];
        }
        printf("%d\n",s);
    }
}


[ 本帖最后由 lxsjzbd 于 2012-4-8 19:48 编辑 ]
2012-04-08 19:37



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-365310-1-1.html




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

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