1

(2 відповідей, залишених у C++)

Дан символ C і рядки S, S0. Після кожного входження символу C в рядок S вставити рядок S0.

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

int main(){
    int i, len;
    char C, S0[1000]="", S1[1000]="", vst[2000]="";
    printf("Enter string S0: ");
    gets(S0);
    printf("Enter string S1: ");
    gets(S1);
    printf("Enter symbol: ");
    scanf("%c", &C);
    len= strlen(S0);
    for(i=0; i<len; i++){
        vst += S0[i];
        if(S0[i] == C){
            vst += S1;
        }
    }
    puts(S1);
    return 0;
}

Спочатку зробив на С++ сказали переробити на С і тепер вибиває помилку.

2

(1 відповідей, залишених у C++)

Дано масив розміру N і два цілих числа K і M (1 ≤ K ≤ N, 1 ≤ M ≤ 10). Перед елементом масиву з номером K вставити M нових елементів з нульовими значеннями.

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

int main(){
    int N, K, M, i=0, *Arr=0;
    printf("Enter N(>0): ");
    scanf("%d", &N);
    printf("Enter K(1 <= K <= N): ");
    scanf("%d", &K);
    printf("Enter M(1 <= M <= 10): ");
    scanf("%d", &M);
    if(N>0 && 1<=K && K<=N && 1<=M && M<= 10){
        Arr=(int*)malloc(sizeof(int)*N); // Äèíàì³÷íå âèä³ëåííÿ ïàìÿ³
        for(i=0; i<N; i++){    
            Arr[i]=rand()%10;
            printf("%3d", Arr[i]);
        }
        printf("\n");
        for(i=0; i<N; i++){
            if(i==K-1){
                Arr=realloc(Arr,(N+(M+1))*sizeof(int));
                for(i=0; i<M; i++){
                    printf("  0");
                }
            }
            printf("%3d", Arr[i]);
        }
        free(Arr);
    }
    else
        printf("ERROR!!!\nOne of the values is not correct!!!");
    return 0;
}

3

(11 відповідей, залишених у C++)

koala написав:

Припустимо, повинна. А що робить замість того?

вона записує, але сама консолька працює якось невірно і я не можу зрозуміти чому

4

(11 відповідей, залишених у C++)

програма повинна вводити дані абітурієнта, та змінювати оцінки за екзамени.

#include <stdio.h> 
#include <locale.h> 
#include <stdlib.h> 
//#include <ctype.h>
//#include <conio.h>
//#include <string.h>

struct Ab {
    int ID;
    char name[15];
    char surname[20];
    char middle_name[15];
    double atestat;
    int mark_math;
    int mark_ukr;
    int ID_specialyty;
};

int enterChoice( void );
void textFile( FILE *readPtr );
void updateRecord( FILE *fPtr );
void newRecord( FILE *fPtr );
void deleteRecord( FILE *fPtr );

int main(){ 
   FILE *cfPtr; 
   int choice;
   setlocale(LC_ALL,"Rus");  
   if ( ( cfPtr = fopen( "abiturient.dat", "ab+" ) ) == NULL ) {
      printf( "Ôàéë íå ìîæëèâî âiäêðèòè.\n" );
   }
   else { 
      while ( ( choice = enterChoice() ) != 5 ) { 

         switch ( choice ) { 
            case 1: textFile( cfPtr );        break;
            case 2: updateRecord( cfPtr );     break;
            case 3: newRecord( cfPtr );        break;
            case 4: deleteRecord( cfPtr );     break;         
            default:
               printf( "Íåâiðíèé íîìåð\n" );break;
           } 

      }
      fclose( cfPtr ); 
   }
   return 0;
}
//--------------------------------------------------------------------
void textFile( FILE *readPtr )
{ 
   FILE *writePtr;
   struct Ab inf = { 0, "", "", "", 0.0, 0, 0, 0 };

   if ( ( writePtr = fopen( "abiturient_list.txt", "rb+" ) ) == NULL ) {
      printf( "Ôàéë íå áóëî çíàéäåíî.\n" );
   }
   else { 
      rewind( readPtr );
      fprintf( writePtr, "\n%-5s%-10s%-10s%-15s%-15s%-10s%-10s%-5s\n", 
         "Íîìåð", "Iì'ÿ", "Ïðiçâèùå", "Ïî áàòüêîâi", "Áàë àòåñòàòà",
         "Ìàòåìàòèêà", "Ìîâà", "Ñïåöiàëüíiñòü\n" );

      while ( !feof( readPtr ) ) { 
         fread( &inf, sizeof( struct Ab ), 1, readPtr );

         if ( inf.ID != 0 ) {
            fprintf( writePtr, "\n%-5d%-10s%-10s%-15s%-10.2f%-10d%-10d%-5d\n",
               inf.ID, inf.name, inf.surname, inf.middle_name ,inf.atestat ,
               inf.mark_math ,inf.mark_ukr ,inf.ID_specialyty);
         }
      }
      fclose( writePtr );
   }

} 
//-------------------------------------------------------------------
void updateRecord( FILE *fPtr )
{ 
   int account;       
   int marks1=0, marks2=0; 

   struct Ab inf = { 0, "", "", "", 0.0, 0, 0, 0 };

   printf( "Ââåäiòü íîìåð àêàóíòà äëÿ çàìiíè äàíèõ ( 1 - 100 ): " );
   scanf( "%d", &account );

   fseek( fPtr, ( account - 1 ) * sizeof( struct Ab ), 
      SEEK_SET );

   fread( &inf, sizeof( struct Ab ), 1, fPtr );

   if ( inf.ID == 0 ) {
      printf( "Àêàóíò #%d íå ìຠiíôîðìàöi¿.\n", account );
   } 
   else { 
      printf( "\n%-5d%-10s%-10s%-15s%-10.2f%-10d%-10d%-5d\n\n", 
          inf.ID, inf.name, inf.surname, inf.middle_name ,inf.atestat ,
          inf.mark_math ,inf.mark_ukr ,inf.ID_specialyty);
      
      printf( "Ââåäiòü îöiíêó çà åêçàìåí ç ìàòåìàòèêè: " );
      scanf( "%d", &marks1 );
      inf.mark_math = marks1;
      printf( "Ââåäiòü îöiíêó çà åêçàìåí ç ìîâè: " );
      scanf( "%d", &marks2 );
      inf.mark_ukr = marks2; 
      
      printf( "\n%-5d%-10s%-10s%-15s%-10.2f%-10d%-10d%-5d\n\n", 
          inf.ID, inf.name, inf.surname, inf.middle_name ,inf.atestat ,
          inf.mark_math ,inf.mark_ukr ,inf.ID_specialyty);
          
      fseek( fPtr, ( account - 1 ) * sizeof( struct Ab ), 
         SEEK_SET );

      fwrite( &inf, sizeof( struct Ab ), 1, fPtr );
   }

} 
//-------------------------------------------------------------------
void newRecord( FILE *fPtr )
{ 
   struct Ab inf = { 0, "", "", "", 0.0, 0, 0, 0 };

   int accountNum; 
   printf("\n1.Êîìï'þòåðíi íàóêè\n2.Çåìëåâïîðÿäêóâàííÿ\n3.Ëiñíèêè\n");
   printf( "Ââåäiòü íîìåð àêàóíòà ( 1 - 100 ): " );
   scanf( "%d", &accountNum );
   fseek( fPtr, ( accountNum - 1 ) * sizeof( struct Ab ), 
      SEEK_SET );

   fread( &inf, sizeof( struct Ab ), 1, fPtr );

   if ( inf.ID != 0 ) {
      printf( "Â ðÿäêó #%d âæå º iíôîðìàöiÿ.\n",inf.ID );
   } 
   else { 
      printf( "Iì'ÿ, Ïðiçâèùå, Ïî áàòüêîâi, Áàë àòåcòàòà, Ìàòåìàòèêà, Ìîâà, Ñïåöiàëüíiñòü\n: " );
      scanf( "%s%s%s%lf%d%d%d", &inf.name, &inf.surname, &inf.middle_name, 
         &inf.atestat, &inf.mark_math, &inf.mark_ukr, &inf.ID_specialyty);

      inf.ID = accountNum;
      
      fseek( fPtr, ( inf.ID - 1 ) * 
         sizeof( struct Ab ), SEEK_SET );
      fwrite( &inf, 
         sizeof( struct Ab ), 1, fPtr );
   }
    getch();
} 
//-------------------------------------------------------------------
void deleteRecord( FILE *fPtr )
{ 

   struct Ab inf;
   struct Ab blankInf = { 0, "", "", "", 0, 0, 0, 0 };
   
   int accountNum; 
   
   printf( "Ââåäiòü íîìåð ðÿäêà ùîá âèäàëèòè ( 1 - 100 ): " );
   scanf( "%d", &accountNum );

   fseek( fPtr, ( accountNum - 1 ) * sizeof( struct Ab ), 
      SEEK_SET );

   fread( &inf, sizeof( struct Ab ), 1, fPtr );

   if ( inf.ID == 0 ) {
      printf( "Àêàóíòà ¹%d íå iñíóº.\n", accountNum );
   } 
   else { 

      fseek( fPtr, ( accountNum - 1 ) * sizeof( struct Ab ), 
         SEEK_SET );
         
      fwrite( &blankInf, 
         sizeof( struct Ab ), 1, fPtr );
   }

} 
//-------------------------------------------------------------------
int enterChoice( void )
{ 
   int menuChoice;
   printf("                Ïðîãðàìà Àáiòóðiºíò\n");
   printf( "\nÇðîáiòü âàø âèáið\n"
      "1 - Çáåðåæåííÿ\n"
      "2 - Äîäàòè äî àêàóíòó\n"
      "3 - Äîäàòè íîâèé çàïèñ\n"
      "4 - Âèäàëèòè çàïèñ\n"
      "5 - Âèéòè\n: " );
    scanf( "%d", &menuChoice );
    return menuChoice;

}

5

(3 відповідей, залишених у C++)

Як записати дані в файл через структуру???