Tag: 数组

反转用户输入的数字

我试图反转用户输入的数字(即用户输入的数字存储在数组中,只要他输入正数)。 但是,当我输入123 4569 752 896 -1时,输出为321 9653 257 698正如您所看到的,第二个数字不是9654.我无法修复它。 #include #include // finding the number of digits int bsm(int a){ int i=0; while(a!=0){ i++; a=a/10; } return i; } // reversing the number int rev(int m,int a){ int s=0,sum=0; while(a!=0){ s=a%10; sum+=s*pow(10,m)/10; m–; a=a/10; } return sum; } int main() { int i=0,k,a[10],p,r; scanf(“%d”,&a[i]); while(a[i]>0){ […]

三维数组中的索引元素

可能重复: 如何在C ++中使用数组? 在以下代码段中: int a[2][3][2]={{{1,2},{9,8},{3,7}},{{2,2},{1,4},{5,4}}}; 什么是[i],[i] [j]的答案,其中i <= 1且j <= 2我对理解a [i] [j] [k]工作没有任何问题。你可以请解释上面的索引是如何工作的?

swig-php包装器使用指针,c代码是一个数组

我正在使用SWIG生成一个调用’c’共享库的PHP扩展。 除了下面的情况,我能够让大多数事情发挥作用…… 在我的’c’代码中,我声明了一个函数(请注意结构和函数名称已被更改以保护无辜者): int getAllThePortInfo(EthernetPort *ports); 在这种情况下,参数端口实际上是EthernetPort结构的数组。 在另一个’c’程序中,我可以这样称呼它…… EthernetPort ports[4]; int rval = getAllThePortInfo(ports); 这很好用。 然后我运行SWIG,生成我的共享库,并且所有构建都很好。 我得到的PHP代码我可以调用… $ports = new_ethernetport(); $rval = getAllThePortInfo($ports); 这会导致PHP抛出以下错误: php:free():无效指针:0x099cb610 所以,我试着做一些像…… $ports = array(new_ethernetport(), new_ethernetport(), new_ethernetport(), new_ethernetport()); $rval = getAllThePortInfo($ports); 但后来PHP抱怨… PHP致命错误:在getAllThePortInfo的参数1中输入错误。 预计SWIGTYPE_p_EthernetPort 我认为正在发生的是PHP(和SWIG)没有区分指针和数组,而在包装器中,它正在考虑“指向单个结构的指针”,实际上,它是一个结构数组。 PHP中有什么我可以做的吗? 分配一块内存,我可以用作存储多个结构的空间? SWIG我能做些什么来让我的包装更好地理解我的意图吗? 我真的很感激任何建议。 谢谢。

在程序结束时检测到堆栈粉碎

我正在测试一个较小规模的程序,以便在我尝试通过return 0;退出程序时区分问题return 0; 在主要function的最后。 MAIN.C #include #include #include “Header.h” int main (void) { int i; int Fin = 0; Student sStu; Array aAry; Student *Stu = &sStu; Array *Ary = &aAry; InitArray(Ary, 1); while(Fin != 2) { printf(“Please choose a selection.\n”); printf(“1. Add Student\n”); printf(“2. Print Students\n”); printf(“3. Exit\n”); scanf(“%d”, &i); switch(i) { case 1: […]

使用strtok存储数组

int main (){ FILE *file = fopen ( “C:\\input.txt”, “r” ); int i=0, j=0, k=0; char *result[10][10]; char line[100]; char *value; char *res[100][100]; for(i=0; i<=9; i++){ for(j=0;j<=9;j++){ result[i][j] = NULL; } } while(fgets(line, sizeof(line), file)){ char *array=strtok(line,"\n"); res[0][0]=strdup(array); printf("\n\n\n %s RES \n",res[0][0]); array=strtok(array,"\n"); res[0][1]=strdup(array); printf("\n\n\n %s RES \n",res[0][1]); array=strtok(line,"\n"); res[0][2]=strdup(array); } 我想逐行将数组存储在txt文件中。 我的输入文件中有3行。 我希望每一行都存储在一个数组中。 我怎样才能做到这一点 […]

2个暗淡的数组和双指针

可能重复: 创建指向二维数组的指针 当我调用函数func4()和func5()时,我得到followinfg错误: func4()错误:无法将参数’1’的’short int(*)[3]’转换为’short int **’为’int func4(short int **)’| func5()错误:无法将参数’1’的’short int(*)[3]’转换为’short int **’为’int func5(short int **)’| 如何更正调用函数func4()和func5()时的错误? 这是我的代码: #include int func1(short mat[][3]); int func2(short (*mat)[3]); int func3(short *mat); int func4(short **mat); int func5(short *mat[3]); int main() { short mat[3][3],i,j; for(i = 0 ; i < 3 ; i++) for(j = 0 ; j < […]

修改malloc的二维数组到C中的3d数组的function

我是C的新手,这是我写的第一个程序。 我的教授给了我们一个为2d数组分配内存的函数,叫做malloc2d。 我应该修改它来为一个3d数组分配内存,但对于CI这么新,我不知道如何去做。 我已经尝试过查看3D数组的其他malloc函数,但它们看起来与我给出的类似。 同样,我们有一个free2d函数,也需要针对3d数组进行修改。 以下是要修改的function: void** malloc2D(size_t rows, size_t cols, size_t sizeOfType){ void* block = malloc(sizeOfType * rows * cols); void** matrix = malloc(sizeof(void*) * rows); for (int row = 0; row < rows; ++row) { matrix[row] = block + cols * row * sizeOfType; }//for return matrix; }//malloc2D void free2D(void*** matrix){ free((*matrix)[0]); free((*matrix)); […]

为连续的2Darrays分配内存

我正在尝试创建一个generics函数,当为维度数组调用分配的连续内存时。 目标是实现类似下面的目标 所以要实现它 – 我正在使用的方程式 Type **pArray; int total_elements = ((rows * cols) + rows); pArray = (Type **) malloc(total_elements * sizeof(Type)); 我也对访问元素部分感到困惑。 我发现很难想象下面的代码如何填充上面数组的元素 for (row = 0; row < dim0; ++row) { for (col = 0; col < dim1; ++col) { /* For this to work Type must be a 1D array type. */ […]

变量数组声明

考虑下面的C代码: #include int main() {int n,i; scanf(“%d”,&n); int a[n]; //Why doesn’t compiler give an error here? } 当编译器最初不知道时,如何声明数组?

在C中帮助这个参差不齐的数组/子串程序?

所以,我有一个长度为200的不规则数组(称为名称)。数组中的每个指针指向一个不超过50个字符且没有空格的字符串。 我还有一个字符串,通过名为inname的用户输入给出,长度为50,inname将是存储在名称中的字符串之一。 我需要找到一种方法来遍历我的参差不齐的数组中的字符串,并找到最大子字符串与inname重叠的字符串,不包括inname本身,因为它将在文件中。 如果没有字符串有重叠,那么我们打印出“无建议”。 我一直在融化试图解决这个问题好几个小时了,有帮助吗? O :)所以基本上,程序在数组中找到最大子字符串与inname重叠的名称。 如果需要,将进行编辑以提供其他信息