2015-09-16 6 views
-3

На входе будет множество целых чисел. Вы должны написать компьютерную программу , чтобы читать каждое целое число и печатать. Даже если целое число равно , делится на 2, иначе напечатайте нечетное. Чтобы далее помочь, число целых чисел (T) для чтения будет первым входом в компьютерную программу.Почему этот код дает ошибку выполнения?

Входной формат: Первая строка ввода содержит количество целых чисел: Т. Т> = 1 После этого, каждая строка содержит целое число N.

Ввод пробы:

Пример вывода:

Даже Одд

#include <stdio.h> 

int main() 
{ 
    int i,T,a[10];/*Assuming Number of integers would be less than 10*/ 
    printf("Enter the Number of integers\n"); 
    scanf("%d",&T); 
    for(i=0;i<T;i++) 
    { 
     scanf("%d",a[i]); 
     printf("\n"); 
    } 
    for(i=0;i<T;i++) 
    { 
     if(a[i]%2==0) 
      printf("Even\n"); 
     else 
      printf("Odd\n"); 
    } 

    return 0; 
} 
+0

Если проблема связана с ошибкой во время выполнения, вы должны напечатать ошибку. Если это segfault, вы должны это сказать. – amdixon

+1

Голосовать за закрытие как простая опечатка. Стандартная ошибка «забыла и в scanf». – Lundin

+1

scanf ("% d", a [i]); -> scanf ("% d", &a[i]); –

ответ

2

У вас есть scanf("%d",a[i]);. Scanf ищет указатель на целое число, и вы передаете целое число (которое, вероятно, будет 0, поскольку вы ничего не назначили, обратите внимание также, что нуль в целом равен NULL). Вы хотите scanf("%d",&a[i]);. Также обратите внимание, что ваш компилятор должен дать вам предупреждение об этом ... если вы используете gcc, вы должны привыкнуть всегда компилировать код с помощью -Wall

1

Спасибо всем. Я узнал об ошибке и использовал динамическую память для программы. Это была программа, которую я использовал. Если кто-то может помочь мне сократить код до нескольких строк, то, пожалуйста, помогите.

#include<stdio.h> 
int main() 
{ 
    int i,*ptr,t; 
    printf("Enter the count:"); 
    scanf("%d",&t); 
    ptr=(int*)malloc(t*sizeof(int)); 
    if(ptr==NULL) 
    { 
     printf("Memory not allocated\n"); 
     exit(0); 
    } 
    if(t>=1) 
    { 
     for(i=0;i<t;++i) 
     { 
      printf("Enter Data:"); 
      scanf("%d",ptr+i); 
     } 
     for(i=0;i<t;i++) 
     { 
      if((*(ptr+i))%2==0) 
       printf("%d is Even\n",*(ptr+i)); 
      else 
       printf("%d is Odd\n",*(ptr+i)); 
     } 
    } 
    return 0; 

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