| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 960 人关注过本帖
标题:为什么呢 运行超时了
只看楼主 加入收藏
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
快速回复:为什么呢 运行超时了
数据加载中...
 
   



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

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