Jump to content

.exe stoped working c valoda


Graadinsh
 Share

Recommended Posts

Kādēļ palaižot programmu un ievadot pirmo skaitli tā uzmet project1.exe stoped working?

 

#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[])
{
    int ped;
    int sk1,sk2,sk3,sk4,sk5,sk6,sk7,sk8,sk9;
    while(ped > 0 || ped < 0)
    {
              
     printf("Ievadiet 10 skaitlus: \n");
     scanf("%d,%d,%d,%d,%d,%d,%d,%d,%d,%d"), sk1,sk2,sk3,sk4,sk5,sk6,sk7,sk8,sk9,ped; 
               }
 
  system("PAUSE");
  return 0;
}
 
Link to comment
Share on other sites

nevertell

Visus tos mainīgos vajag padot ar referenci nevis vērtību. Jebšu, padod nevis sk1, bet &sk1. 

Vispār jau tur var smuku masīvu uztaisīt.

#include<stdio.h>

int main(){
    int a[10] = {};
    for (int i=0; i < 10; i++){
        scanf("%d \n", &a[i]);
    }
    for (int i=0; i < 10; i++){
        printf("%d in %lu \n", a[i], &a[i]);
    }

    return 0;
}

Ej nu tagad saproti, ko tas & dara un ko viņš ziemā ēd.

Link to comment
Share on other sites

Tas & saka, ka scanf'am rezultāts jāielasa adresē kurā atrodas a vērtība, šajā gadījumā a'tais. Deklarējot mainīgo, vai šajā gadījumā masīvu no mainīgajiem, tiek izdalīta atmiņa, kur tas atradīsies (jau atrodas). Vispār jau nu atkarībā no kompilatora versijas, sākotnēji šajā vietā arī vai nu jau ieraksta 0-lles, or neieraksta.

Link to comment
Share on other sites

Un arī tam 'ped' vajadzētu iedot kautkādu noteiktu vērtību'savādāk ja trāpīsies 0 tad tavs cikls nekad neizpildīdies

Link to comment
Share on other sites

Senilikis

while(ped > 0 || ped < 0)

Tā neviens normāls cilvēks neraksta, vienkārši while(ped!=0), (nav vienāds ar nulli).

Kā nevertell rakstīja tad labāk izveidot masīvu, ērtāk un pareizāk ir izmantot pointerus, protams bez cikla neiztikt.

 

#include <stdio.h>
#include <stdlib.h>
#define size 10
main(){
    
    int *p,i;
    p=(int*)malloc(sizeof(int*)*size);
    for(i=0;i<size;i++){
        printf("%d.elements ",i+1);
        scanf("%d",(p+i)); // var rakstit ari &*(p+i), kautvai ta neviens nedara
    }
    for(i=0;i<size;i++){
        printf("\n%d.elements %d",i+1,*(p+i));
    }
    return 0;
}

 

Un tās mulķības, ko tu sarkastīji, labāk aizmirsti.

Labots - Senilikis
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...