Tag: 数组

C ++是否允许VLA作为函数参数

给定代码用于生成魔术方块,其中我已使用VLA作为函数 create_magic_square(int n,int magic_square [n] [n]) print_magic_square(int n,int magic_square [n] [n]) #include void create_magic_square(int n, int magic_square[n][n]); void print_magic_square(int n, int magic_square[n][n]); int main() { int size; printf(“This program creates a magic square of a specified size”); printf(“The size be an odd number between 1 and 99”); printf(“Enter the size of magic square: “); scanf(“%d”, […]

将char数组转换为struct *类型

在下面的代码中,有人可能会解释行struct ether_header *eh = (struct ether_header *) sendbuf;上发生了什么struct ether_header *eh = (struct ether_header *) sendbuf; ? 我知道它正在创建一个类型为ether_header的指针eh ,并且在RHS上,您正在将sendbuf转换为tyoe struct ether_header的指针。 但是你怎么能这样做是sendbuf是一个char array ? 你也为什么要这样做? 这是完整代码发送以太网帧的链接 #include #include #include #include #include #include #include #include #include int main(int argc, char *argv[]) { int sockfd; struct ifreq if_idx; struct ifreq if_mac; int tx_len = 0; char sendbuf[BUF_SIZ]; struct […]

使用指针编写strcat()时出错

我正在尝试The C programming Language by K&R学习C The C programming Language by K&R 。 我正在尝试使用指针编写strcat()程序。 char *strcat (char *s, char *t){ char *d; d = s; while(*s++); s–; while(*s++ = *t++); return d; } int main () { char *name1; char *name2; name1 = “stack” ; name2 = “overflow”; printf(“%s %s\n”, name1, name2); printf(“strcat out : […]

代码在C中没有按预期工作

我正在用C编写一个程序来计算句子中的空格数。 但我还没有设法让它正常工作。 如果我输入类似Hello world 1234的内容 ,当预期输出为5时,我得到的输出是3。 我的代码是: //Program to count number of words in a given Sentence #include #include int main() { char sent[100]; char sentence[] = {‘ ‘, ‘\0’}; printf(“\nEnter a sentence :\n”); gets(sent); strcat(sentence, sent); int l = strlen(sentence), i = 0, count = 0, countCh = 0; printf(“%d”, l); char ch, ch1; […]

我可以用什么方法(使用stdio)打印垂直直方图

我正在做所有的K&R练习,最后我能够打印水平直方图。 它看起来很糟糕,但我会让你判断它。 我无法在其输入中垂直打印单词长度的直方图。 如何修改我的程序来执行此操作? 问题:如果输入中有单词,则编写程序以打印长度的直方图。 可以很容易地绘制水平条形图的直方图; 垂直方向更具挑战性。 histogram.c #include #define MAX 10 #define IN 1 #define OUT 0 int main() { int c, len, state; int nlength[MAX]; c = len = 0; state = 1; for(int i = 0; i < 10; ++i) nlength[i] = 0; while ((c = getchar()) != EOF) { ++len; if […]

将String拆分为String数组

我一直在为arduino编程,但今天我遇到了一个问题,我无法用我非常有限的C知识来解决。 这是怎么回事。 我正在创建一个将串行输入发送到arduino(deviceID,command,commandparameters)的pc应用程序。 这个arduino将把这个命令通过RF发送给其他arduino。 根据deviceID,正确的arduino将执行命令。 为了能够确定我想在“,”上拆分该字符串的deviceID。 这是我的问题,我知道如何在java中轻松地做到这一点(即使不使用标准的分割function),但在C中它是一个完全不同的故事。 你们中的任何人都能告诉我如何让这个工作吗? 谢谢 /* Serial Event example When new serial data arrives, this sketch adds it to a String. When a newline is received, the loop prints the string and clears it. A good test for this is to try it with a GPS receiver that sends out NMEA […]

用随机数填充数组并打印到屏幕

我是初学者,尝试用随机数填充3×5二维数组,然后在屏幕上显示高,低和平均值。 我无法让我的arrays打印到屏幕上。 有人可以帮忙吗? #include #include #include int main (void){ int array [3][5]; int practice_array; int i, row, col; srand(time(NULL)); for ( row = 0; row < 3; row +1){ for ( col = 0; col < 5; col +1){ array[row][col] = (rand()%10000) + 1; } } practice_array = array[row][col]; printf("%d", array[row][col]); return (0); }

获取用户输入并将其添加到数组的函数

我有一个功课问题来完成这个方法。 我真的不知道该怎么做。 鉴于这个psuedocode有人可以帮我写这个方法吗? /* make a new array of the old size plus the new size copy from the old to the new add the new characters don’t forget to clean up the old array (free it) before you leave this function */ char * add(char * array, int num) { return array; }

如何在C中按升序对字符串数组进行排序

问题 我已经制作了与其他类似的排序程序 C Program to Sort set of strings in alphabetical order 但我做的程序不起作用。 我认为两者都是一样的,但我的计划给了我废物输出。 另外我想知道其他程序计数设置为5例如它应该从0开始输入6但是它只获得5,如何? 我的计划 #include #include int main() { char str[4][10],temp[10]; int i,j; printf(“Enter strings one by one : \n”); for(i=0;i<5;i++) scanf("%s",str[i]); for(i=0;i<5;i++) for(j=i+1;j0){ strcpy(temp,str[i]); strcpy(str[i],str[j]); strcpy(str[j],temp); } printf(“\nSorted List : “); for(i=0;i<5;i++) printf("\n%s",str[i]); printf("\n\n"); return 0; }

如何将数组从函数返回到main

我必须使用该函数打开文件,读取它,将第一个值保存为以下元素(维度)的数量以及seq[]数组中的其他值。 我不知道如何在main中返回dimension和seq[] ; 我需要它,因为我必须在其他函数中使用这些值。 如代码所示,函数返回维度(dim),但我不知道如何返回数组。 #include #include #include #include int leggiSequenza(char *nomeFile, int *seq) { FILE *in; int i; int dim; if((in = fopen(nomeFile, “r”))==NULL) { printf(“Error.\n”); return -1; } fscanf(in, “%d”, &(dim)); printf(“Find %d values.\n”, dim); if(dim < 0) { printf("Errore: negative value.\n"); return -1; } seq = (int*) malloc(dim*sizeof(int)); i=0; while(!feof(in) && i<(dim)) […]