wypisanie liczb parzystych i nieparzystych

0

Cześć mam do was pytanko jeszcze do jednego programu-muszę napisać program który wypisuje czy liczba jest parzysta czy nieparzysta-nie mogę użyć if i '?:'
Okazało się jednak że może być też tylko jeden switch i nie wiem jak zastąpić ten działający program z dwoma tak by był tylko jeden switch

#include <stdio.h>
 
 
int main() 
{
    int a,b;
    printf("Podaj liczbe:");
    int warunek=scanf("%d",&a);
    b=a%2;
    switch(warunek)
    { case 0:printf("incorrect input\n"); return 1;
      case 1:switch(b)
      {
        case 0:
            printf("%d is even",a);
            return 0;
        case 1:
            printf("%d is odd",a);
            return 0;

      
         
      }
      
    }   
}
1

Zrób sobie pętlę while.
Tak btw, skąd bierzesz takie głupie zadania?

2

Zadanie iście kretyńskie. Ale w tym wypadku użyłbym tablicy stringów.

#include <stdio.h>

int main()
{
    int a;
    printf("Podaj liczbe:");
    int warunek = scanf("%d", &a);
    char const* wtf[2] = { "Liczba parzysta\n", "Liczba nieparzysta\n" };
    switch (warunek) {
    case 0:
        printf("incorrect input\n");
        return 1;
    case 1:
        printf(wtf[a % 2]);
    }
}
}
2
#include <stdio.h>
#include <string.h>
 
void isOdd(int num) {
	char text[100] = "Liczba jest ";
	strcat(text, "nieparzysta\n" + ((num + 1) % 2) * 3);
	printf(text);
}
 
int main(void) {
	isOdd(120);
	isOdd(135);
	isOdd(-1);
	isOdd(0);
	return 0;
}
0

nie może być pętel
@kq:

tylko musi być wypisany format 'A' is even/odd i nie za bardzo to wychodzi twoim sposobem

0
kq napisał(a):

U mnie działa: https://wandbox.org/permlink/GiERRSVhB6UQkM9P

A wiesz może jak można by zmienić twój program by wyświetlał "%d is even/odd,a" bo to jest również wymagane

0

Tutaj musisz się wykazać własną inwencją. Co takiego należałoby zmienić w moim programie, aby zmienić wyświetlany tekst? 🤔🤔🤔

0
kamiloo2k napisał(a):
kq napisał(a):

U mnie działa: https://wandbox.org/permlink/GiERRSVhB6UQkM9P

A wiesz może jak można by zmienić twój program by wyświetlał "%d is even/odd,a" bo to jest również wymagane

@szweszwe właśnie dowiaduję się ciągle o wykluczeniach których nie ma wypisanych

1
#include <stdio.h>

void bad(int a) { printf("incorrect input\n"); }
void ok(int a) {  printf("Liczba %d jest %s",a,"nieparzysta\n"+3*((a^1)&1)); }

int main()
{
	typedef void fun(int a);
	static fun *funtb[]={&bad,&ok};
	int a;
	printf("Podaj liczbe: ");
	funtb[scanf("%d",&a)](a);
	return 0;
}

Takiej wersji jeszcze nie było, chyba.

0

muszę napisać program który wypisuje czy liczba jest parzysta czy nieparzysta-nie mogę użyć if i '?:'

Skoro liczba jest jedna, to po co Ci trzy zmienne (a,b,warunek)?

int number, 
     condition;
scanf("%d", &number);
condition = number&1 == 0; // jak sklerozy nie mam, to &1 = %2
switch(condition) {
     case 1:
     printf("Number is even");
    case 0:
    printf("Number is odd");
}

A tak serio - zamierzasz co chwila pojawiać się z takimi "genialnymi" zadaniami? Ja bym sobie dał spokój.

0

Coś mi świta że ostatnio było jakieś tego typu pytanie na forum...
Jakoś tak?

#include <stdio.h>

int main(void) {
    int v;
    printf("Podaj liczbe: ");
    return ((1 != scanf(" %d", &v)) && puts("incorrect input"))
      || (((printf("%d is ", v) && ((v % 2) && puts("odd"))) || puts("even")), 0);
}
1
const char* const arr[] = {"even", "odd"};

int main() {
  unsigned int n;
  scanf("%u", &n);

  printf("%u is %s", n, arr[n % 2]);

  return 0;
}
0

ja mam pytanko, a nie lepiej zastosować dzielenie modulo i na tej podstawie zrobić algorytm ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1