以下代码成功编译,但我在main
函数的第一行得到了Segmentation错误.我不知道为什么我会收到这个错误.
#include <stdio.h>
#include <math.h>
unsigned int prime=2;
void resetprimegenerator()
{
prime=2;
}
unsigned int getnextprime()
{
while(1)
{
if(isprime(prime))
return prime;
}
}
int isprime(unsigned int n)
{
int i=3,check=1;
if(n==2)
return n;
for(i=3;i<=sqrt(prime);i+=2)
{
if(prime%i==0)
{
check=0;
break;
}
}
return check;
}
int main()
{
int t,n,i=0,j=0;
int input[500];
unsigned int answer[500][5000];
scanf("%d",&t);
getchar();
while(t-->0)
{
scanf("%d",&input[i]);
getchar();
n=input[i];
j=0;
resetprimegenerator();
while(n-->0)
{
answer[i][j]=getnextprime();
j++;
}
i++;
}
for(i=0;i<t;i++)
{
for(j=0;j<input[i];j++)
{
if(j==input[i]-1)
printf("%u",answer[i][j]);
else …
Run Code Online (Sandbox Code Playgroud) 我可以在python中以列表解析的方式编写以下内容
for row in candidates:
sum=0
for i in range(1,len(candidates)):
if(row[i]!='NA')
sum+=int(row[i])
row.append(sum)
Run Code Online (Sandbox Code Playgroud)
以下candidates
是每个内部列表包含候选标记的候选列表的列表.我想做的是
"我正在增加每个内部列表中的成员,这将保留每个候选人的总分数" candidate=[[143050023,5,7,6,8],[14305678,3,4,5,6]]
(内部的0个索引具有候选人的卷号)
我想回答
[[143050023,5,7,6,8,26],[14305678,3,4,5,6,18]]
Run Code Online (Sandbox Code Playgroud)
我能够在不使用列表理解的情况下做同样的事情,但在尝试使用列表理解时遇到困难我在编写时面临的困难是如何对值进行求和并将其附加到每个内部循环之后的行中.
使用列表时,与循环结构的正常情况相比,理解能力更强吗?