应该是边界问题.循环时从0开始不好么?看下面注释
#include <stdio.h>
#include <math.h>
#pragma warning(disable:4996)
int prime(int Num)x05
{x05//if Num is a prime number, return 1
x05int i;
x05for (i = 2; i <= sqrt(Num); i++)
x05x05if (Num%i == 0)
x05x05x05return(0);
x05return(1);
}
main()//最好写成int main()
{
x05int Qty, QtyLtl, Num;x05//quantity
x05int j, k, Sum[10] = { 0 };
x05scanf("%d", &Qty);
x05for (k=1; k<=Qty; k++)//改成for (k=0; k<Qty; k++),次数一样,范围不同(输入10的时,Sum下标不至于越界
x05{
x05x05scanf("%d", &QtyLtl);
x05x05for (j=1; j<=QtyLtl; j++)//最好也改成for (j=0; j<QtyLtl; j++)
x05x05{
x05x05x05scanf("%d", &Num);
x05x05x05if ((prime(Num)==1) && (Num!=1))
x05x05x05x05Sum[k]=Sum[k]+Num;
x05x05}
x05}
x05for (k=1; k<=Qty; k++)//同样改成for (k=0; k<Qty; k++)
x05{
x05x05printf("%dn", Sum[k]);
x05}
}