Ошибка - функция не может быть перегружена - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый вечер! Первый раз пишу на этом форуме, я новичок, так что как можно понятнее объясняйтесь, если можно Дана вот такая задача: есть структура "автосервис", первые шаги - это ввести и вывести такие данные "регистрационный номер автомобиля, марка, пробег, мастер, выполнивший ремонт, сумма ремонта". Вроде бы постаралась сделать всё правильно, но выдало такую ошибку - error C2731: main: функция не может быть перегружена. Может кто-нибудь поймёт в чём дело? Заранее благодарна всем, кто поможет
#include <stdio.h>
#include <string.h>
#include <conio.h>
 
typedef struct 
{
    char reg_nom [30];
    char marka[30];
    char probeg[30];
    char vypoln_rem[30];
    char summa_rem[30];
}avtser;
 
int main (avtser avtser[]);
int menu ();
void vvod (avtser avtser[]);
void vyvod (avtser avtser[]);
int i;
 
int main () {
    avtser NumAvtser[5];
    while (1){
        switch (menu()) {
            case '1': vvod(NumAvtser);
            break;
 
            case '4': vyvod(NumAvtser);
            break; 
        }
    }
}
 
void vvod (avtser avtser[])
{   for (i=0; i<5; i++)
    {
        printf ("Vvedite marku \n");
        gets_s (avtser[i].marka);
        printf ("Vvedite mastera, vypoln remont \n");
        gets_s (avtser[i].vypoln_rem);
        printf ("Vvedite summu remonta \n");
        gets_s (avtser[i].summa_rem);
        printf ("Vvedite registr nomer \n");
        gets_s (avtser[i].reg_nom);
        printf ("Vvedite probeg \n");
        gets_s (avtser[i].probeg);
    }
}
void vyvod (avtser avtser[]) {
    int i; 
    for (i=0; i<5; i++) {
        printf ("marka - %s\nmaster, vypoln remont - %s\nsumma remonta - %s\nregistr nomer - %s\nprobeg - %s\n", avtser[i].marka, avtser[i].vypoln_rem, avtser[i].summa_rem, avtser[i].reg_nom, avtser[i].probeg);   
    }
}

Решение задачи: «Ошибка - функция не может быть перегружена»

textual
Листинг программы
//int __stdcall WINAPI WinMain
int WINAPI WinMain( HINSTANCE hInstance,
                    HINSTANCE hPrevInstance,
                    LPTSTR    lpCmdLine,
                    int       nCmdShow)
{
    WORD Channel = 0;
    WORD rgValues[32] = {0};
    SlotInfo MySlotInfo ={0};
    WORD NewRangeTab[12] = {0}; //APAX 5017 is a 12 channels AI module
    BYTE rgChannelStatus[32] = {0};
    int i = 0;
    DWORD dwMask = 0x0; 
    DWORD dwIntegration = 0;
    WORD Timeout = 0;
    LONG Result = 0;
 
    wprintf(L"Slot ID setting in this sample code is %d.\n", g_SlotOne);
    
    if (ADV_SUCCESS == OpenLib() )
    {
        wprintf(L"\n*** Get module ID and current range setting ***\n");
        //get module ID and current range setting
        if (ERR_SUCCESS == SYS_GetSlotInfo(g_DriverHandle, g_SlotOne, &MySlotInfo) )
            My_Show_SlotInfo(&MySlotInfo);
        else
            wprintf(L"Get slot information error.\n");
        
        Sleep(100);
 
        //Set inner timeout
        wprintf(L"\n*** Set inner timeout ***\n");
        Timeout = 1000;
        Result = SYS_SetInnerTimeout(g_DriverHandle, Timeout);
        if (ERR_SUCCESS == Result )
            wprintf(L"Set integration time succeed, timeout = %d ms.\n", Timeout);
        else
            wprintf(L"Set integration time error, error code = %d.\n", Result);
 
        //Set integration time
        wprintf(L"\n*** Set integration time ***\n");
        Result = AI_SetIntegrationTime(g_DriverHandle, g_SlotOne, dwIntegration);
        if (ERR_SUCCESS == Result )
            wprintf(L"Set integration time succeed.\n");
        else
            wprintf(L"Set integration time error, error code = %d.\n", Result);
 
        Sleep(100);
 
        //Get channel status
        wprintf(L"\n*** Get channel status ***\n");
        if (ERR_SUCCESS == AIO_GetChannelStatus(g_DriverHandle, g_SlotOne, rgChannelStatus) )
        {
            for (i=0; i<12; i++)
            {
                wprintf(L"Slot %d channel %d status is ", g_SlotOne, i);
 
                switch(rgChannelStatus[i])
                {
                    case 0:
                        wprintf(L"\"None\"\n");
                        break;
                    case 1:
                        wprintf(L"\"Normal\"\n");
                        break;
                    case 2:
                        wprintf(L"\"Over current\"\n");
                        break;
                    case 3:
                        wprintf(L"\"Under current\"\n");
                        break;
                    case 4:
                        wprintf(L"\"Burn out\"\n");
                        break;
                    case 5:
                        wprintf(L"\"Open loop\"\n");
                        break;
                    case 6:
                        wprintf(L"\"Not ready\"\n");
                        break;
                    default:
                        wprintf(L"\"Unknown\"\n");
                        break;
                }
            }
        }
        else
            wprintf(L"Get Slot %d channel status error.\n", g_SlotOne);
 
        Sleep(100);
 
        wprintf(L"\n*** Set new range table ***\n");
        NewRangeTab[0] = NEG_10_TO_10_V;
        NewRangeTab[1] = ZERO_TO_20_MA;
        NewRangeTab[2] = _4_TO_20_MA;
        NewRangeTab[3] = NEG_1_TO_1_V;
        NewRangeTab[4] = NEG_150_TO_150_MV;
        NewRangeTab[5] = NEG_5_TO_5_V;
        NewRangeTab[6] = NEG_150_TO_150_MV;
        NewRangeTab[7] = NEG_10_TO_10_V;
        NewRangeTab[8] = NEG_150_TO_150_MV;
        NewRangeTab[9] = NEG_5_TO_5_V;
        NewRangeTab[10] = _4_TO_20_MA;
        NewRangeTab[11] = NEG_10_TO_10_V;
 
        //Set range follow APAX 5017 range table setting
        wprintf(L"Channel total = %d.\n", MySlotInfo.byChTotal);
        if (ERR_SUCCESS == AIO_SetRanges(g_DriverHandle, g_SlotOne, MySlotInfo.byChTotal, NewRangeTab) )
        {
            if (ERR_SUCCESS == SYS_GetSlotInfo(g_DriverHandle, g_SlotOne, &MySlotInfo) )
            {
                My_Show_SlotInfo(&MySlotInfo);
            }
            else
                wprintf(L"Get slot information error.\n");
        }
        else
        {
            DWORD ErrorCode = GetLastError();
            wprintf(L"Set new range table error, error code = %x.\n", ErrorCode);
        }
        
        Sleep(100);
 
        
        //Set channel mask
        wprintf(L"\n*** Set channel mask ***\n");
        dwMask = 0xFFFFFFFF; //enable all channel
        if (ERR_SUCCESS == AI_SetChannelMask(g_DriverHandle, g_SlotOne, dwMask) )
        {   
            for (i=0; i<12; i++)
            {
                if (dwMask & (0x01 << i) )
                    wprintf(L"Channel %d = Enable.\n", i);
                else
                    wprintf(L"Channel %d = Disable.\n", i);
            }
        }
        else
            wprintf(L"Set channel mask error.\n");
 
        Sleep(100);
 
        //Get value (single channel)
        wprintf(L"\nGet single channel value.\n");
        rgValues[0] = 0x0;
        Channel = 0;
        if (ERR_SUCCESS == AIO_GetValue(g_DriverHandle, g_SlotOne, Channel, rgValues) )
            Scale_RawData(&MySlotInfo, Channel, rgValues);
        else
            wprintf(L"Channel %d get value error.\n", Channel);
 
        Sleep(100);
 
        //Get value (multi channel)
        wprintf(L"\nGet multi channels value.\n");
        if (ERR_SUCCESS == AIO_GetValues(g_DriverHandle, g_SlotOne, rgValues) )
        {
            for (int Channel=0; Channel<MySlotInfo.byHwIoTotal_0; Channel++)
                Scale_RawData(&MySlotInfo, Channel, rgValues);
        }
        else
            wprintf(L"Get multi channels value error.\n");
    }
    else
    {
        wprintf(L"Open library fail.\n");
    }
    
    CloseLib();
    wprintf(L"/***        END         ***/ \n\n");
 
        MessageBoxW(NULL,
        _T("Close!"),
        _T("End"),
        MB_OK);
    return 0;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.444 из 5
Похожие ответы