Другие языки программирования и технологии
всем кто смыслит в СИ программировании . проверьте решение
задача: Дан целочисленный массив, состоящий из 15 элементов. Вывести на печать те элементы , для которых остаток от деления на 5 равно 2. решение: #include<stdio.h> #include<conio.h> Void main(void) { Int i, a[15], b[15]; Clrscr(); { Printf(“n\ vvedite a[%i]”,i); Scanf(“%i”, &a); } For (i=0; i<14; i++) { If ((a%5)==2) B=a; Else B=0; Printf(“\n b[%i]=”,b); } } ну так вот она идет но ничего она не считает... и вообще она мегокорявая ! что опять не так тут сделали?
1. Ошибка: Язык С чувствителен к регистру. То есть если объявил int a; то нельзя в программе использовать А, так как А и а разные переменные.
2. Функции тоже чувствительны к регистру. for, printf, scanf и т. п так как они объявлены в заголовочных файлах именно так. For и Printf уже другие функции.
3.Если задал массив, то обращение к его элементам выглядит так: a[номер] ;
4. Много ненужных фигурных скобок скобок.
#include<stdio.h> //Подключение заголовочного файла
#include<conio.h> //Подключение заголовочного файла
void main(){ //Функция входа
int i, a[15]; // Перменая счетчик, массив
for (i=0; i<=14; i++){ //Ввод массива начиная с 0 элемента до 14
printf("n\vvedite a[ % i ]:",i); // Запрос на ввод
scanf("%i",&a[ i ]); // ввод массива
} // Конец цикла ввода
for (i=0; i<=14; i++){ //Проверка массива
if((a[ i ]%5)==2) //если элемент массива делится на 5 с остатком 2, то
printf("%i",a[ i ]); // выводим этот элемент
} //Конец цикла вывода
} //Конец main
Писал на скорую руку, могут быть ошибки.
+ мэил жрет код
Вроде все впорядке
2. Функции тоже чувствительны к регистру. for, printf, scanf и т. п так как они объявлены в заголовочных файлах именно так. For и Printf уже другие функции.
3.Если задал массив, то обращение к его элементам выглядит так: a[номер] ;
4. Много ненужных фигурных скобок скобок.
#include<stdio.h> //Подключение заголовочного файла
#include<conio.h> //Подключение заголовочного файла
void main(){ //Функция входа
int i, a[15]; // Перменая счетчик, массив
for (i=0; i<=14; i++){ //Ввод массива начиная с 0 элемента до 14
printf("n\vvedite a[ % i ]:",i); // Запрос на ввод
scanf("%i",&a[ i ]); // ввод массива
} // Конец цикла ввода
for (i=0; i<=14; i++){ //Проверка массива
if((a[ i ]%5)==2) //если элемент массива делится на 5 с остатком 2, то
printf("%i",a[ i ]); // выводим этот элемент
} //Конец цикла вывода
} //Конец main
Писал на скорую руку, могут быть ошибки.
+ мэил жрет код
Вроде все впорядке
Сложно сказать - майл весь код похавал. Вроде, должно что-то считать (выводить 0 вместо "неправильных" эл-тов) - но это если в схаваном все правильно было. Только буквы маленькие всюду надо сделать.
А вообще, так проще:
for(i=0;i<15;i++){printf(“\n vvedite a[%i]”,i); scanf(“%i”, &a[ i ]);}
for(i=0;i<15;i++)if((a[ i ]%5)==2)printf(("%i ",a[ i ]);
А вообще, так проще:
for(i=0;i<15;i++){printf(“\n vvedite a[%i]”,i); scanf(“%i”, &a[ i ]);}
for(i=0;i<15;i++)if((a[ i ]%5)==2)printf(("%i ",a[ i ]);
Лёха Хализов
не ) майл код не трогал...
он только в комментах его конец весь убирает .
про маленькие буквы, ворд исправляет на заглавные
да он ерунду выдает
щас картинку покажу
он только в комментах его конец весь убирает .
про маленькие буквы, ворд исправляет на заглавные
да он ерунду выдает
щас картинку покажу
Я не знаю, опечатка это у вас или нет, но ключевое слово void пишется с прописной буквы.
Void main(void)
Кроме того это вообще некорректное объявление функции main. Тип возвращаемого ее значения должен быть int.
int main( void )
Затем вот этот код непонятен
{
Printf(“n\ vvedite a[%i]”,i);
Scanf(“%i”, &a);
}
Наверное вы пропустили управляющее предложение цикла for.
Кроме того исходя из описания вашего задания вам совершенно не нужен промежуточный массив b. Можно непосредственно выводить на печать элементы массива a.
Кроме того я не вижу объявление перменной цикла i. То есть в начале программы вы долны определить эту переменную
int i;
Тогда цикл для вывода элементов массива на печать будет выглядеть следующим образом
for ( i=0; i<15; i++ )
{
If ((a[ i ] % 5 ) == 2 ) printff(“\i = %d, a[ i ] = %d\n", i, a[ i ] );
}
Void main(void)
Кроме того это вообще некорректное объявление функции main. Тип возвращаемого ее значения должен быть int.
int main( void )
Затем вот этот код непонятен
{
Printf(“n\ vvedite a[%i]”,i);
Scanf(“%i”, &a);
}
Наверное вы пропустили управляющее предложение цикла for.
Кроме того исходя из описания вашего задания вам совершенно не нужен промежуточный массив b. Можно непосредственно выводить на печать элементы массива a.
Кроме того я не вижу объявление перменной цикла i. То есть в начале программы вы долны определить эту переменную
int i;
Тогда цикл для вывода элементов массива на печать будет выглядеть следующим образом
for ( i=0; i<15; i++ )
{
If ((a[ i ] % 5 ) == 2 ) printff(“\i = %d, a[ i ] = %d\n", i, a[ i ] );
}
Лёха Хализов
не не не ) это ворд так просто исправляет...
на заглавные
объявлени е переменноитай i там есть, вы пропустили наверно когда смотрели
на заглавные
объявлени е переменноитай i там есть, вы пропустили наверно когда смотрели
В С важен регистр
Printf не прокатит и надо printf (ну и остальное аналогично)
не вижу цикла для ввода всего массива (нужен вокруг printf, scanf)
for (i=0; i <= 14; i++) if ( a[ i ]%5 == 2) printf("\n%d", a[ i ]); // достаточно без использования лишнего массива B
(Код криво пролез и может я чего-то не понял. Чтоб сюда код нормально пролез надо [ i ] и [ b ]писать с пробелами, иначе мейлру считает их тегами форматирования текста)
Printf не прокатит и надо printf (ну и остальное аналогично)
не вижу цикла для ввода всего массива (нужен вокруг printf, scanf)
for (i=0; i <= 14; i++) if ( a[ i ]%5 == 2) printf("\n%d", a[ i ]); // достаточно без использования лишнего массива B
(Код криво пролез и может я чего-то не понял. Чтоб сюда код нормально пролез надо [ i ] и [ b ]писать с пробелами, иначе мейлру считает их тегами форматирования текста)
Похожие вопросы
- Язык СИ, проблема с решением.
- Помогите с программированием. Составить решения для задачи С++.
- Си++ Программирование. Создать третий массивов из неповторяющихся повторений на основе 2 исходных
- Поможете найти и исправить тут ошибку. (СИ программирование)
- Си. Как проверить, есть ли в одномерном массиве повторяющиеся элементы?
- Программирование c++. Решение задачи
- какую программу лучше использовать для программирования на языке Си?
- Программирование на языке СИ с использованием подпрограммы-функции
- Посоветуйте книги по программированию на Си.
- Язык программирования Си
Во-вторых, объявление вашей функции main не соответствует стандарту языка С. Должно быть
int main( void )
если вам не нужны параметры, которые передаются на вход main.
В-третьих цикл должен быть не от 0 до 14, а от 0 до 15, так как размерность вашего массива равна 15!