Форум программистов, компьютерный форум CyberForum.ru

Не работает программа - C++

Восстановить пароль Регистрация
 
Electricitygirl
1 / 1 / 0
Регистрация: 11.12.2010
Сообщений: 26
22.01.2011, 13:30     Не работает программа #1
Написать программу, которая в заданной матрице заменяет на нули те элементы, которые кратны 1 элементу строки. На си

#include<stdio.h>
#include<conio.h>
#define size 10
int main ()
{
float mas [size]={3,4,5,6,7,8,9,2,3,1};
int nol=0;
float del=mas[0];
int i=0;
while (i<size)
{
if (mas[i]%mas[0]==0)
{
del=mas[i];
nol=i;
}
i++;
}
mas[nol]=0;
for (i=0;i<size;i++)
{
printf ("%f",mas[i]);
}
}


Указывает ошибку в if (mas[i]%mas[0]==0), что мне нужно подставить, чтобы она заработала? Помогите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MegaAce
 Аватар для MegaAce
330 / 304 / 65
Регистрация: 14.02.2010
Сообщений: 662
22.01.2011, 14:06     Не работает программа #2
Цитата Сообщение от Electricitygirl Посмотреть сообщение
if (mas[i]%mas[0]==0)
Так как mas- массив действительных чисел то % нельзя применить
И так как ваша програма заменяла только последнее число кратное первому в массиве, я немного переделал программу
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<stdio.h>
#include<conio.h>
#define size 10
int main ()
{
int mas [size]={3,4,5,6,7,8,9,2,3,1};
//int nol=0;
//float del=mas[0];
int i=1;
 
while (i<size)
{
 if (mas[i] % mas[0] == 0)
 {
  mas[i]=0;
 }
 i++;
} 
 
for (i=0;i<size;i++)
{
printf ("%i ",mas[i]);
}
}
Для удобства и лучшей продуктивности еще можно заменить
C
1
2
3
4
5
6
7
8
9
int i=1;
while (i<size)
{
 if (mas[i] % mas[0] == 0)
 {
  mas[i]=0;
 }
 i++;
}
на
C
1
2
3
4
5
for(int i=1;i<size;i++)
{
 if (mas[i] % mas[0] == 0)
 mas[i]=0;
}
Josefina
 Аватар для Josefina
10 / 10 / 1
Регистрация: 27.09.2010
Сообщений: 32
22.01.2011, 14:23     Не работает программа #3
И еще пример, как вариант)
В задании все таки написано матрица, а не массив, если я правильно понимаю

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//первоначальная матрица
    int mass[3][3] = {2,3,4,5,6,7,8,4,5};
 
    //выводим эту матрицу на экран
    printf("Исходная матрица: \n");
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<3; j++)
        {
            printf(" %i ", mass[i][j]);
        }
        printf("\n");
    }
    //делаем замену элементов на нули согласно условию
    for (int i=0; i<3; i++)
    {
        for (int j=1; j<3; j++)
        {
            if ((mass[i][j]%mass[i][0])==0) 
                mass[i][j] = 0;
        }
    }
    
    //выводим на экран результат после замены
    printf("После замены получаем: \n");
    for (int i=0; i<3; i++)
    {
        for (int j=0; j<3; j++)
        {
            printf(" %i ", mass[i][j]);
        }
        printf("\n");
    }
 
    _getch();
    return 0;
MegaAce
 Аватар для MegaAce
330 / 304 / 65
Регистрация: 14.02.2010
Сообщений: 662
22.01.2011, 14:27     Не работает программа #4
Цитата Сообщение от Josefina Посмотреть сообщение
матрица, а не массив
Точно, разобрался в наработках, и совсем забыл))
Yandex
Объявления
22.01.2011, 14:27     Не работает программа
Ответ Создать тему
Опции темы

Текущее время: 09:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru