IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> Задача в С++, помогите найти ошибку
sheka
сообщение 9.07.2009 14:01
Сообщение #1


Я.
****

Группа: Пользователи
Сообщений: 809
Пол: Мужской
Реальное имя: Саша

Репутация: -  11  +


Дана примерная таблица-матрица 1 2 (1,2,3,4-это четверти,для ясности)
3 4
1.Сгенерировать матрицу,вывести на экран сумму элементов 3+2 четвертей,методом выборки столбцов
2.Поиск Элементов
В каждом столбце заданного элемента,деление пополам.

 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
main(){
float m[2][2];
int i,j;
srand(time(NULL));
printf("\n");
for(i=0;i<2;i++){
for(j=0;j<2;j++){
m[i][j]=rand()%10;
printf("%1.f ",m[i][j]);
}
printf("\n");
}

printf("summa 2 i 3 = %1.f \n\n",m[0][1]+m[1][0]);
printf("viberi chetvert\n");
printf("1 2\n");
printf("3 4\n");
int c;
scanf("%d",c);
switch© {
case '1':
case '2':{
m[0][0]=m[0][0]/2;
m[0][1]=m[0][1]/2;
}
case '3':
case '4':{
m[1][0]=m[1][0]/2;
m[1][1]=m[1][1]/2;
}
}

for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("%f ",m[i][j]);
}
printf("\n");
}

printf("\n");
return(0);
}
ругается в scanf("%d",c); - при выполнении до этого места все нормально, а потом вылетает. почему? подскажите пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 9.07.2009 14:27
Сообщение #2


Гость






Цитата
при выполнении до этого места все нормально, а потом вылетает. почему?
Потому что надо
scanf("%d",&c);
, нужен адрес переменной.

P.S. У тебя вообще программа делает не то, что тебе кажется. В switch-е после каждого case-а должен быть break, чтоб прекратить выполнение этой ветки. У тебя break отсутствует, то есть при вводе 1 или второй четверти:
Цитата
  switch© {
case '1':
case '2':{
m[0][0]=m[0][0]/2; // сначала выполнится этот фрагмент
m[0][1]=m[0][1]/2;
}
case '3':
case '4':{
m[1][0]=m[1][0]/2; // а потом этот, ты не сказал программе прекратить выполнение switch
m[1][1]=m[1][1]/2;
}
}
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.06.2025 10:27
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"