Lilyanaa Ответов: 1

Проблема с простой структурой в программировании на языке Си


Привет, у меня возникли проблемы с программированием с C. программа, с которой у меня возникают проблемы компиляции при объявлении структуры глобальным образом(мне это нужно именно таким образом).Я получаю следующие ошибки компиляции:
g_str.c:13:9: error: expected declaration specifiers or ‘...’ before ‘men’
 sprintf(men[0].n[0],"hello1");
         ^~~
g_str.c:13:21: error: expected declaration specifiers or ‘...’ before string constant
 sprintf(men[0].n[0],"hello1");
                     ^~~~~~~~
g_str.c:14:9: error: expected declaration specifiers or ‘...’ before ‘men’
 sprintf(men[1].n[1],"hello2");
         ^~~
g_str.c:14:21: error: expected declaration specifiers or ‘...’ before string constant
 sprintf(men[1].n[1],"hello2");
                     ^~~~~~~~
g_str.c:15:9: error: expected declaration specifiers or ‘...’ before ‘men’
 sprintf(men[2].n[2],"hello3");
         ^~~
g_str.c:15:21: error: expected declaration specifiers or ‘...’ before string constant
 sprintf(men[2].n[2],"hello3");
                     ^~~~~~~~


Что я уже пробовал:

#include<stdio.h>	
#include<stdlib.h> 


struct str1 
  {
   char n[3][7];
  
};

struct str1 men[3]; 
 
sprintf(men[0].n[0],"hello1");
sprintf(men[1].n[1],"hello2");
sprintf(men[2].n[2],"hello3");

void main()		// the main function
{
printf(" %s",men[1].n[1]);

}

1 Ответов

Рейтинг:
9

Jochen Arndt

Ваш sprintf() вызовы находятся вне любой функции. Вы должны переместить их в функцию (используя main() здесь):

int main()
{
    sprintf(men[0].n[0],"hello1");
    sprintf(men[1].n[1],"hello2");
    sprintf(men[2].n[2],"hello3");
    printf(" %s",men[1].n[1]);
    return 0;
}