Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Ада и другие языки _ ищем F по значению функции

Автор: BUG 10.11.2006 1:10

Составить прогу, вычисляющую значение переменной F по правилу:
'Y' если k=Max(x,y,z)
F=
'N' в противном случае

x,y,z,k - целые, вводятся с клавиатуры, F -символьная. На экран вывести значения всех переменных!

#include <stdio.h>
#include <conio.h>
int max (int x,int y,int z)
{
int max;
if (x>=y&&x>=z)max=x;
if (y>=x&&y>=z)max=y;
if (z>=y&&z>=x)max=z;
return max;
}
int main()
{

int x,y,z,k;
char F;

printf("\n%fx = "); scanf("%f",&x);
printf("\n%fy = "); scanf("%f",&y);
printf("\n%fz = "); scanf("%f",&z);
printf("\n%fk = "); scanf("%f",&k);


if (k==max(x,y,z)) {F='Y';}
else {F='N';}

printf("\nx = %2.0f",x);
printf("\ny = %2.0f",y);
printf("\nz = %2.0f",z);
printf("\nk = %2.0f",k);
prinf("\nF= ??",F);
//какой тут ключ? и подскажите какие ключи для всех переменных))

getch();
}

Автор: Алена 10.11.2006 1:21

printf("\nF= %с",F);


с - для одиночного символа
s - для группы символов (строки)
d - целое десятичное число со знаком
f - вещественное число
p - указатель

Ну и хватит на первое время... Там еще полтора десятка символов преобразования, если нужно - смотри в Help-е...

Автор: Гость 10.11.2006 1:29

не хочет работать, пишет printf no prototype. Не знаете где ошибка?*

Автор: klem4 10.11.2006 1:29

BUG, что-то ты намудрил, можно намного проще ;)

# include <stdio.h>

int Max(int a, int b, int c)
{
if (b > a)
a = b;
if (c > a)
a = c;
return a;
}
int main (void)
{
int x, y, z, k;

printf("x = "); scanf("%d", &x);
printf("y = "); scanf("%d", &y);
printf("z = "); scanf("%d", &z);
printf("k = "); scanf("%d", &k);

char F = (k == Max(x, y, z) ? 'Y' : 'N');

printf("F = %c", F);

return 0;
}

Автор: Алена 10.11.2006 1:34

Цитата
пишет printf no prototype.

#include <stdio.h>
делал?

Автор: Гость 10.11.2006 1:37

declaration is not allowed here! пишет на вызове функции

Автор: klem4 10.11.2006 1:41

Ты сейчас о чем говорил ? У нас с телепатами напряженка, извини ... Так что выражайся точнее ...

Автор: Гость 10.11.2006 1:44

char F = (k == Max(x, y, z) ? 'Y' : 'N');


на этом в общем ошибку пишет! а так для Cи можно писать?

Автор: Алена 10.11.2006 1:56

Нельзя... В С надо сначала описать все переменные, а потом с ними работать... (точнее - нельзя описывать новые переменные после строки, где не было ни одного описания, а были только операторы)...

Автор: Гость 10.11.2006 2:04

а для чего klem4 использовал переменные a,b,c. Каким образом они связаны с x,y,z?

Автор: Алена 10.11.2006 2:13

Не путай... a, b, c - это формальные параметры функции, а x, y, z - фактические... То есть, на a, b, c ты показываешь функции (формально), что надо будет сделать "с чем-то, что будет передано тебе позже"... А потом передаешь x, y, z и функция работает именно с этими значениями...

P.S. у тебя, кстати, было то же самое, за исключением того, что имена параметров совпадали... Но так как внутри функции и глобально - разные области видимости, то это все равно были разные переменные...

Автор: Гость 10.11.2006 2:13

а для функции какую библиотеку надо включить? no prototype на функцию пишет

Автор: klem4 10.11.2006 2:15

Цитата
Нельзя... В С надо сначала описать все переменные, а потом с ними работать... (точнее - нельзя описывать новые переменные после строки, где не было ни одного описания, а были только операторы)...


Да мой косяк, нету чистого Си под рукой ...


char F;
F = (k == Max(x, y, z) ? 'Y' : 'N');


Так работает ?

Автор: Гость 10.11.2006 2:19

я давно исправил, но пишет ошибку!
для функции какую библиотеку надо включить? no prototype на (k == Max(x, y, z) пишет