我在将 Azure CosmosDB 连接到 MongoDB Compass 时遇到问题。我需要有关以下设置的说明和帮助:
我正在尝试将动态数组实现到我的C堆栈,但是我有点困惑char malloc如何工作,以便它一旦创建就插入垃圾数据.
这是用于初始化数组和推送元素的代码.
typedef struct {
char *array;
int used;
int size;
} Array;
void initArray(Array *a, int initialSize) {
a->array = (char *)malloc(initialSize * sizeof(char)+1);
a->used = 0;
a->size = initialSize;
}
void pushArray(Array *a, int element) {
if (a->used == a->size) {
a->size +=1;
a->array = (char *)realloc(a->array, a->size * sizeof(char));
}
a->array[a->used++] = element;
}
Run Code Online (Sandbox Code Playgroud)
这是我初始化并将元素推入数组的主要代码段
int main()
{
Array a;
int i=0;
initArray(&a,0);
char choice='a';
char exp[100]="";
printf("Please enter an expression\n");
scanf("%s",exp);
for (i=0;i<strlen(exp);i++){
pushArray(&a,exp[i]);
} …Run Code Online (Sandbox Code Playgroud) 众所周知,如果自然数的平方根不是整数,那么它是不合理的.这种平方根的十进制扩展是无限的,没有任何重复模式.
二的平方根是
1.41421356237309504880...,并且前一百个十进制数字的数字和是475.对于前100个自然数,找到所有无理平方根的前100个十进制数字的数字和的总和.
这是我为这个问题制作的代码:
from decimal import *
from math import sqrt
getcontext().prec = 100
def digitalsum(n):
sum = 0
for a in n:
sum += int(a)
return sum
total = 0
for a in range(1, 101):
if not sqrt(a) % 1 == 0:
ans = str(Decimal(a).sqrt())
ans = ans[2::]
print(a)
print(digitalsum(ans))
print("-------")
total += digitalsum(ans)
print(total)
Run Code Online (Sandbox Code Playgroud)
它显示错误的答案,我认为我一路上都错过了一些东西.任何形式的帮助表示赞赏.