| imho.ws |
![]() |
|
|
|
# 1 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Проблемма с програмированием
Короче нужно сделать маленькую работу на языке С, я в програминге ничего на шарю. Вот вопрос: я скопировал из инета код вот он
#include <stdio.h> main() { int a,b,c; printf("\nThe first number is "); scanf("%d",&a); printf("The second number is "); scanf("%d",&b); c = a + b; printf("The answer is %d \n",c); } Я делаю compile и run, но после ввода первых двух чисел программа просто закрывается, хотя должна выдавать сумму этих двух чисел. Так же происходит и с той работой которую я пытаюсь сделать. (пользуюсь программой devc++) Что может быль не так? |
|
|
|
|
# 2 |
|
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
очевидно, ты просто не успеваешь прочесть вывод на экран; добавленные строки заставят окно ждать ввода символа и нажатия Enter.
#include <stdio.h> main() { int a,b,c; char c; printf("\nThe first number is "); scanf("%d",&a); printf("The second number is "); scanf("%d",&b); c = a + b; printf("The answer is %d \n",c); scanf("%c", &c); }
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
|
|
|
|
# 5 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Еще один вопрос: Как указать такое дело?
Надо возвести х в степень у при этом если (x=0 AND y≤0) OR (x<0 AND y не целое число)б должно выдавать ОШИБКА. Со всем справился кроме того что у не целое числоб как это указать ? Вообще у любое, так что int y не прдлагать
|
|
|
|
|
# 7 | |
|
::VIP::
Регистрация: 09.09.2002
Адрес: Kiev
Пол: Male
Сообщения: 1 150
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
![]() Код:
#include <math.h>
#include <stdio.h>
main()
{
double x, y, n;
x = -41.56789;
y = modf(x, &n);
printf("modf(%f)=fractional %f and integer : %f",
x, y, n);
}
__________________
Great minds discuss ideas. Average minds discuss events. Small minds discuss people. |
|
|
|
|
|
# 9 |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Короче у меня снова вопрос. Вот код, судя про всему что то в нём не так, при компиле всё ОК, но если запускаеьш программу, то сразу выдаётся ошибка. Текст не русский в коде присутствует, но я думаю перевод не нужен.
#include<stdio.h> #include<math.h> #include<stdlib.h> int main(float argc, char *argv[]){ void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20]); float kraadid (int celsius); float astmed(float a, float b); float celsius; float fahrenheit; char nimi[20]; float a,b; float aste; celsius = atof(argv[1]); strcpy(nimi, argv[2]); fahrenheit=kraadid(celsius); a = atof(argv[3]); b = atof(argv[4]); aste=astmed(a,b); prindi(celsius,fahrenheit,a,b,aste,nimi); system("PAUSE"); return 0; } float kraadid(int celsius) { float fahrenheit; fahrenheit=1.8*celsius+32; return fahrenheit; } float astmed(float a, float b){ float aste; aste= pow(a, b); return aste; } void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20]){ printf("Nimi on: %s\n%d kraadi Celsiuse skaala on %5.2f kraadi Fahrenheiti skaalal\n%5.2f astmel %5.2f on %5.2f\n", nimi, celsius, fahrenheit, a, b, aste); } Последний раз редактировалось alexksei; 28.10.2005 в 02:01. |
|
|
|
|
# 10 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
alexksei
Бред у тебя какой-то в функции main в начале написан... На сколько я понял всё должно выглядеть примерно так: Код:
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main(float argc, char *argv[])
{
float celsius = atoi(argv[1]);
float fahrenheit = kraadid(celsius);
char nimi[20];
float a = atoi(argv[2]), b = atoi(argv[3]);
float aste = astmed(a,b);
strcpy(nimi, argv[4]);
prindi(celsius,fahrenheit,a,b,aste,nimi);
return 0;
}
float kraadid(int celsius)
{
float fahrenheit;
fahrenheit = 1.8*celsius+32;
return fahrenheit;
}
float astmed(float a, float b)
{
float aste;
aste = pow(a, b);
return aste;
}
void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20])
{
printf("Nimi on: %s\n%d kraadi Celsiuse skaala on %5.2f kraadi Fahrenheiti skaalal\n%5.2f astmel %5.2f on %5.2f\n", nimi, celsius, fahrenheit, a, b, aste);
}
|
|
|
|
|
# 11 |
|
::VIP::
Регистрация: 17.12.2002
Адрес: Q-ata, Israel
Сообщения: 310
![]() ![]() ![]() ![]() ![]() |
вызывает сомнение вот этот блок
int main(float argc, char *argv[]){ void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20]); float kraadid (int celsius); float astmed(float a, float b); попробуй перенести выделенную строку ВНИЗ блока - тогда объявления функции prindi, kraadid и astmed окажутся вне мэйна, где им собственно и место. |
|
|
|
|
# 12 | ||
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Цитата:
Цитата:
Я в программинге не очень шарю, так что офомляю всё как учат... Вро де учили так, ничего не получается. |
||
|
|
|
|
# 13 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
alexksei
Пиши _какие_ у тебя ошибки, что происходит... Ты кстати вводишь в параметрах командной строки данные для программы? Программа берет данные именно оттуда, и если ты не задаешь их, а просто запускаешь, то конечно она будет ругаться. Кстати в функции astmed вообще нет необходимости, она фактически меняет в main строку float aste = pow(a,b) на float aste = astmed(a,b), да плюс ещё лишняя фуцнкция. Функция prindi честно говоря тоже не имеет большого смысла, разве что для многократного её вызова с разными параметрами. |
|
|
|
|
# 14 |
|
Junior Member
Регистрация: 11.10.2005
Сообщения: 63
![]() |
Держи.
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> //не хватало //Объявления функций естественно вынесены void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20]); float kraadid (int celsius); float astmed(float a, float b); int main(int argc, char *argv[]){ //вообще-то argc это int float celsius; float fahrenheit; char nimi[20]; float a,b; float aste; if(argc!=5){ //надо проверить всё таки printf("Using: %s <celsius> <nimi> <a> <b>\n", argv[0]); return 1; } celsius = atof(argv[1]); strcpy(nimi, argv[2]); fahrenheit=kraadid(celsius); a = atof(argv[3]); b = atof(argv[4]); aste=astmed(a,b); prindi(celsius,fahrenheit,a,b,aste,nimi); system("PAUSE"); return 0; } float kraadid(int celsius) { float fahrenheit; fahrenheit=1.8*celsius+32; return fahrenheit; } float astmed(float a, float b){ float aste; aste=pow(a, b); return aste; } void prindi (float celsius, float fahrenheit, float a, float b, float aste, char nimi[20]){ //celsius - float, а не int printf("Nimi on: %s\n%5.2f kraadi Celsiuse skaala on %5.2f kraadi Fahrenheiti skaalal\n%5.2f astmel %5.2f on %5.2f\n", nimi, celsius, fahrenheit, a, b, aste); } |
|
|
|
|
# 15 | |
|
Newbie
Регистрация: 19.11.2004
Сообщения: 45
![]() |
Цитата:
Sorry чуваки, я забыл что надо через командную строку вводить параметры. Оказывается и моя первоначальная была правильная практически. Но всё равно всем THANKS
Последний раз редактировалось alexksei; 28.10.2005 в 21:25. |
|
|
|