2016-06-05 3 views
-1
typedef struct{ 
    char noreg[11]; 
    float IPK; 
}Mahasiswa; 

void showDataArr(Mahasiswa *A, int ukuran){ 
    int i; 
    for(i=0;i<ukuran;i++){ 
     printf("Mhs ke %d\n",i+1); 
     printf("\tNoreg : %s\n",A[i].noreg); 
     printf("\tIPK : %.2f\n",A[i].IPK); 
    } 
} 

void isiDataArr(Mahasiswa *A, int ukuran){ 
    int i; 
    char temp[20]; 
    for(i=0;i<ukuran;i++){ 
     printf("Masukan Noreg : "); 
     scanf ("%[^\n]",A[i].noreg); 
     printf("Masukan IPK : ");scanf("%f",&A[i].IPK); 
     getchar(); 
    } 
} 

int n; 
main(){ 

    Mahasiswa PTIK[n]; 

    printf("masukan jumlah data :"); 
    scanf("%d",&n); //this part 
    isiDataArr(PTIK,n); 
    printf("\n"); 
    showDataArr(PTIK,n); 
    getch(); 
} 

Привет у меня есть этот код прямо там, моя проблема в том, когда я запускаю его зсапЕ бы сделать программу обхода первый вход массиву «не masukan нет рег» осталось бы пустым like this остальное массив, однако будет работать нормальнопроблемы Struct

+4

Серьезно, размещение ссылки на изображение было проще, чем вставка текста в виде текста? ** Текст в виде текста, а не изображений! ** – Olaf

+1

Если n равно 0 ...?! Как вы думаете, что будет делать первая строка кода? – Myst

+2

'Mahasiswa PTIK [n]'. Это явно неверно, так как «n» равно 0 в этой точке объявления. Таким образом, ваш массив имеет размер 0. – kaylum

ответ

0

Если я немного изменить свою программу, он будет делать то, что я думаю, что вы хотите:

#include<stdio.h> 

typedef struct { 
    char noreg[11]; 
    float IPK; 
} Mahasiswa; 

void showDataArr(Mahasiswa *A, int ukuran) { 
    int i; 
    for (i = 0; i < ukuran; i++) { 
     printf("Mhs ke %d\n", i + 1); 
     printf("\tNoreg : %s\n", A[i].noreg); 
     printf("\tIPK : %.2f\n", A[i].IPK); 
    } 
} 

void isiDataArr(Mahasiswa *A, int ukuran) { 
    int i; 
    char temp[20]; 
    for (i = 0; i < ukuran; i++) { 
     printf("Masukan Noreg : "); 
     scanf("%s", A[i].noreg); 
     getchar(); 
     printf("Masukan IPK : "); 
     scanf("%f", &A[i].IPK); 
     getchar(); 
    } 
} 

int n; 

int main(void) { 
    printf("masukan jumlah data :"); 
    scanf("%d", &n); //this part 
    Mahasiswa PTIK[n]; 
    isiDataArr(PTIK, n); 
    printf("\n"); 
    showDataArr(PTIK, n); 
    //getch(); 
} 

тест

masukan jumlah data :2 
Masukan Noreg : 123qwe 
Masukan IPK : 123 
Masukan Noreg : 234wer 
Masukan IPK : 234 

Mhs ke 1 
    Noreg : 123qwe 
    IPK : 123.00 
Mhs ke 2 
    Noreg : 234wer 
    IPK : 234.00 
+0

да объявление массива позже исправлено, спасибо и вы не возражаете, если Я спросил, существует ли разница между main() и int main (void), поскольку на самом деле это не имеет никакого значения? – Rosenkreuz

Смежные вопросы