2013-11-02 3 views
0

Здесь я не могу найти никаких ошибок. Целью программы является ведение всех возможных комбинаций элементов массива и их сумм. Я пытаюсь написать программу, которая вернет мне массив элементов, где каждый следующий не будет соответствовать предыдущей или сумме любых предыдущих комбинаций элементов. Я начал, как это и обнаружил ошибку: он говорит, что программа перестала работать ...Простая ошибка программы C

#include <stdio.h> 
int m[20]; 

void initm(int x[]) { 
    for(int i=0; i<20; i++) { 
     m[i]=i; 
    } 
} 

void sorter(int x[]) { 
    for(int i=0; i<20; i++) { 
     for(int j=0; j<20; j++) { 
      /* nested for loop to get all possible combinations */ 
      printf("%d===%d===%d", x[i], x[j], x[i]+x[j]); 
     } 
    } 
} 

int main() { 
    initm(m[20]); 
    sorter(m[20]); 
    return 0; 
} 
+4

'' Я не могу найти здесь никаких ошибок ». Вы посмотрели выходные сообщения своего компилятора? –

ответ

4

m[20] считывает int один элемент после конца вашего массива так

initm(m[20]); 
sorter(m[20]); 

должен быть

initm(m); 
sorter(m); 
+2

Это означает, что существует, вероятно, ряд предупреждений компилятора, игнорируемых OP. –

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