#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
int main() {
char phone[100];
char* d[100];
scanf("%[^\n]", phone);
char* piece;
piece = strtok(phone, " ");
int i = 0;
while (piece != NULL)
{
d[i] = piece;
piece = strtok(NULL, " ");
i++;
}
for (i = 0; i < 10; i++) {
if(i%2==0)
printf("%s ",d[i]);
}
return 0;
}
d
не инициализирован, а в том, что колическтво итераций цикла вывода массива d
не зависит от того, сколько элементов было занесено в этот массив. Правильным решением было бы как-то их связать, например так:int i = 0, n;
while (piece != NULL)
{
d[i] = piece;
piece = strtok(NULL, " ");
i++;
}
n = i;
for (i = 0; i < n; i++) {
if(i%2==0)
printf("%s ",d[i]);
}
#define _CRT_SECURE_NO_WARNINGS
#include <string.h>
#include <stdio.h>
int main() {
char phone[100];
char *d[100];
int i = 0;
scanf("%[^\n]", phone);
while (d[i++] = strtok(!i ? phone : NULL, " "));
i = -1;
while (d[++i]) {
if (!(i & 1))
printf("%s ", d[i]);
}
return 0;
}