Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > C/C++/С#


Ответ
 
Опции темы Опции просмотра
Старый 28.06.2012, 16:25   #11 (permalink)
mish_k98
Member
 
Аватар для mish_k98
 
Регистрация: 28.11.2010
Сообщений: 728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 45
По умолчанию

спасибо за помощ
mish_k98 вне форума   Ответить с цитированием

Старый 28.06.2012, 16:25
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Я уверен, что проблему можно решить гораздо быстрее если ознакомиться с ней получше

Строки. Не могу найти ошибку в программе
Помогите найти ошибку
Pascal ABC, ООП. Не могу найти ошибку
Delhi. Вставить элемент, не могу найти ошибку
Помогите найти ошибку

Старый 30.06.2012, 17:27   #12 (permalink)
mish_k98
Member
 
Аватар для mish_k98
 
Регистрация: 28.11.2010
Сообщений: 728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 45
По умолчанию

появилась проблема.хочу чтоб калькулятор считал вещественные числа.вотизменил программу.но при вводе второго числаоно выходит с программы.в чём дело?


#include<stdio.h>
#include<conio.h>
main()

{
float a,b;
char c;
printf("Vvedite chislo ");
scanf("%f", &a);
printf("Vvedite operatsiy ");
scanf("%s", &c);
printf("Vvedite chislo ");
scanf("%f", &b);

switch(c)
{
case '+': printf("Suma:%f%c%f=%f \n",a,c,b,a+b); break;
case '*': printf("Dobutok:%f%c%f=%f \n",a,c,b,a*b);break;
case '/': printf("Chastka:%f%c%f=%f \n",a,c,b,a/b); break;
case '-': printf("Raznitsa: %f%c%f=%f \n", a,c,b,a-b);
}

getch();
}
mish_k98 вне форума   Ответить с цитированием
Старый 30.06.2012, 19:52   #13 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

попробуйте вместо %f поставить %g
kreol вне форума   Ответить с цитированием
Старый 30.06.2012, 20:02   #14 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

и вообще у вас есть несколько ошибок.
1) функция main() обязательно должна иметь тип int и возвратить 0 в случае удачного завершения. библиотека conio.h не нужна. для с++ правильнее использовать getchar(). ну и наконец делайте отступы в программе. в общем код будет таким:
Код:
#include <stdio.h>


int main()
{
  float a,b;
  char c;
  printf("Vvedite chislo ");
  scanf("%g", &a);
  printf("Vvedite operatsiy ");
  scanf("%s", &c);
  printf("Vvedite chislo ");
  scanf("%g", &b);

  switch(c)
  {
    case '+': printf("Suma: %g %c %g = %g \n", a, c, b, a+b); break;
    case '*': printf("Dobutok: %g %c %g = %g \n", a, c, b, a*b); break;
    case '/': printf("Chastka: %g %c %g = %g \n", a, c, b, a/b); break;
    case '-': printf("Raznitsa: %g %c %g = %g \n", a, c, b, a-b); break;
  }

  getchar();

  return 0;
}
kreol вне форума   Ответить с цитированием
Старый 01.07.2012, 13:30   #15 (permalink)
mish_k98
Member
 
Аватар для mish_k98
 
Регистрация: 28.11.2010
Сообщений: 728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 45
По умолчанию

спасибо за помощ.мой код тоже работает.извините.просто были некоторые причины.извините.
mish_k98 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 01.07.2012, 14:07   #16 (permalink)
mish_k98
Member
 
Аватар для mish_k98
 
Регистрация: 28.11.2010
Сообщений: 728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 45
По умолчанию

решил написать ещё одну программу.но она не работает.в чём дело?


#include <stdio.h>
#include <conio.h>

main()
{
int a,b,d,e;
printf("1-perimetr priamoygolnika,2-ploschad priamoygolnika\n");
printf("Vvedite dejstvie\n");
scanf("%d", &a);

switch(a)
{
case '1':

printf("Vvedite storonu\n");
scanf("%d%d", &b,&d);
e=(b+d)*2;
printf("perimetr=",&e);

case '2':
printf("Vvedite storonu\n");
scanf("%d%d", &b,&d);
e=b*d;
printf("ploschad=",&e);
}
getch();
}
mish_k98 вне форума   Ответить с цитированием
Старый 01.07.2012, 15:47   #17 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

1) еще раз! функция main должна возвращать целое число, да у вас может компилятор пропустить и без числа. но! это не правильно по спецификации.
2) если у вас переменная а имеет тип int то и сравнивать его стоит с типом int а вы сравниваете с символом.
3) Нужно не забывать о break; в конце каждого! case (его можно упускать, но только в некоторых случаях)
4) почитайте еще раз о функции printf
1. у вас не задан спецификатор формата в строке
2. вы передаете не значение переменной в функцию а адрес где эта переменная "находиться"
kreol вне форума   Ответить с цитированием
Старый 09.07.2012, 14:57   #18 (permalink)
mish_k98
Member
 
Аватар для mish_k98
 
Регистрация: 28.11.2010
Сообщений: 728
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 45
По умолчанию

а как всё должно быть?
mish_k98 вне форума   Ответить с цитированием
Старый 09.07.2012, 17:07   #19 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Код:
решил написать ещё одну программу.но она не работает.в чём дело?


#include <stdio.h>
#include <conio.h>

int main(){
        int a,b,d,e;
  printf("1-perimetr priamoygolnika,2-ploschad priamoygolnika\n");
  printf("Vvedite dejstvie\n");
  scanf("%i", &a);
      
  switch(a){
    case 1:
      printf("Vvedite storonu\n");
                     scanf("%i%i", &b,&d);
                     e=(b+d)*2;
                     printf("perimetr = %i", e);
                     break;

    case 2:     
                     printf("Vvedite storonu\n");
                     scanf("%i%i", &b,&d);
                     e=b*d;
                     printf("ploschad = %i", e);
                     break;
  }
              
  getch();
  return 0;
              }
Примерно так(не проверял)
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 13:15.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.