2015-04-21 2 views
-7

Напишите программу, которая предложит пользователю ввести два значения long. Реализует функцию с именем negative_count(), которая принимает два аргумента типа данных long и возвращает целое число, которое является числом отрицательных аргументов. Затем отобразится результат main().
Например:Создать функцию

Введите два целых числа типа данных «длинной»: -1264364007 -2 Количество отрицательного числа введен 2

#include <stdio.h> 
#include <stdlib.h> 

/* 
* 
*/ 
long num1,num2; 
void Negative_Count(long int,long int); 
    int main(void) { 


    printf("Enter two number: "); 
    scanf("%ld%ld",&num1,num2); 
    ("you entered %ld%ld",&num1,&num2); 

    Negative_Count(num1,num2); 


    return (0); 
} 

void Negative_Count(long int num1,long int num2) 
{ 
     if (num1,num2<0)  
     printf("%ld%ld is negative.",&num1,&num2); 
    else if (num1,num2>0) 
     printf("%ld%ld is positive.",&num1,&num2); 
    else if (num1>0, num2<0) 
      printf("%ld is negative",&num2); 
    else if (num1<0, num2>0) 
     printf("%ld is negative",&num1); 



} 

Могу ли я использовать цикл с двумя переменными?

+2

'если (num1, num2 <0)' ... я не знаю, что это такое, но, безусловно, не 'C '. –

+2

Вы пропустили _whole_ 'printf' before' (« вы ввели% ld% ld », & num1, &num2);' ?? Знаете ли вы синтаксис 'printf()' ;? –

ответ

0

Ваш зсапЕ и Printf форматирование были проблемы. Также условная проверка в операторах if также была неправильной.

Вы можете изменить код, как показано ниже для правильной работы ...

#include <stdio.h> 
#include <stdlib.h> 

void Negative_Count(long int,long int); 

    int main(void) { 

    long num1,num2; 

    printf("Enter two number: "); 
    scanf("%ld%ld",&num1,&num2); 
    printf("you entered %ld%ld \n",num1,num2); 

    Negative_Count(num1,num2); 

    return 0; 

} 

void Negative_Count(long int num1,long int num2) 
{ 
     if (num1<0 && num2<0) {  
     printf("%ld , %ld are negative.",num1,num2); 
     } 
     else if (num1>0 && num2>0) { 
     printf("%ld , %ld are positive.",num1,num2); 
     } 
     else if (num1>0 && num2<0){ 
     printf("%ld is negative",num2); 
     } 
     else if (num1<0 && num2>0){ 
     printf("%ld is negative",num1); 
     } 
} 
2
scanf("%ld%ld",&num1,num2); 

должно быть

scanf("%ld%ld", &num1, &num2); 

("you entered %ld%ld",&num1,&num2); 

должно быть

printf("you entered %ld %ld", num1, num2); 

if (num1,num2<0)  
    printf("%ld%ld is negative.",&num1,&num2); 
else if (num1,num2>0) 
    printf("%ld%ld is positive.",&num1,&num2); 
else if (num1>0, num2<0) 
     printf("%ld is negative",&num2); 
else if (num1<0, num2>0) 
    printf("%ld is negative",&num1); 

должен быть

if (num1 < 0 && num2 < 0) 
    printf("%ld and %ld are negative.", num1, num2); 
else if (num1 > 0 && num2 > 0) 
    printf("%ld and %ld are positive.", num1, num2); 
else if (num1 > 0 && num2 < 0) 
    printf("%ld is negative", num2); 
else if (num1 < 0 && num2 > 0) 
    printf("%ld is negative", num1); 

Используйте и оператор (&&): Если оба операнда не равны нулю, то условие становится истинным.

И обратите внимание, что printf (в отличие от scanf) не нуждается в адресе переменной, просто передайте значение.

+0

Он продолжает давать мне предупреждение «Negative_Count. c: 28: 25: warning: format указывает тип 'long *', но аргумент имеет тип 'long' [-Wformat] " – Amethyst

+0

Да,' scanf' также был неправильным, см. edit –