równanie w "printf" oraz "printf" w "scanf"

0

Mam taki kod:
int a,b;
cin>>a>>b;
cout << a+b;

chciałbym zastąpić ten kod, kodem z printf i scanf. Ale, tak aby dodawanie także było w printf. A potem całe printf wsadzić w scanf. Wiem że da się to zrobić, tylko nie umiem wymyślić jak.

0
scanf("%d%d", &a, &b);
printf("%d", a+b);

?

0

@up - spację ci zjadło.

0
[losowa nazwa] napisał(a)
scanf("%d%d", &a, &b);
printf("%d", a+b);

?

Tak,
połowa jest.
teraz wsadzić scanf do printf żeby to jeszcze skrócić

0

nedase :) A przynajmniej nie bez nieładnych prohaxów.

0

No to jak ma to wyglądać z prohaxami?
printf("%d",scanf("%d",&a));

0

Nie bo tak ci wyświetli wartość zwracaną przez scanf, która jest flagą błędu o ile wystąpi.

0

czyli ogólnie której się tego napisać nie da?

0

Da się:

int a = 0, b = 0;
printf("%d %d", (scanf("%d %d"), a), b); // o ile dobrze pamiętam to tak, ale broń cię przed takimi wynalazkami.
0

printf("%d\n",(scanf("%d",&a),(a+a*a)/2));
no i krócej niż wcześniej :D
pytanie jeszcze czy da się to jakoś skrócić bardziej.

0

Ale po co?

0

No bo chce napisać jak najkrótszy kod.

Obecna wersja tego co udało mi się skroić to:

#include<stdio.h>
int main(){for(int i=10,a;i--&&printf("%d\n",(scanf("%d",&a),(a+a*a)/2)););}
0

@ne0: bierzesz udzial w jakims konkursie na najbardziej poryty kod?
bo nie za bardzo rozumiem tego fetyszu - po co spedzac caly dzien nad jedna linijka kodu?

0

Nie w konkursie. Zakład z nauczycielem :)

0

Chcesz pisać krótki kod? Wybierz inny język :] Co dokładnie chcesz napisać?

0

Dostajesz dokładnie 10 liczb. Kazda w nowej linii.
Dla kazdej z nich masz obliczyc sume od 1 do tej liczby.
Czyli jak na wejsciu dostajesz 4, to masz wyliczyc 4+3+2+1. Jak dostaniesz 7 to 7+6+5+4+3+2+1 i wypisac na ekran.

Inny tzn jaki by się najlepiej do tego nadawał?

0

Miałem na myśli jakiś język funkcyjny/deklaratywny, ale zadanie jest chyba za proste żeby mógł rozwinąć skrzydła. Napiszę za chwilę jak wpadnę na jakiś pomysł.

0

Może perl...
Wydaje mi się że coś można zrobić z tym wzorem. Skróciłem go już i tak bardzo dobrze, ale może da się to jeszcze jakoś zrobić. W całym programie zmienna "a" pojawia się aż 5 razy...

0

Ahahahaha, befunge jest zaje****!

Program wykonujący to zadanie dla ciebie:

56+>   1- :#v_@
   ^./2+*::&<

:]

0

Hm, a jak dalej chce mieć to w
C, C++ albo c99 strict?

0

Lubię w sumie takie zabawy, więc... Z wzorem nic nie zrobisz. Moja (nieco krótsza propozycja):

#include<stdio.h>
/* twoja wersja:
int main(){for(int i=10,a;i--&&printf("%d\n",(scanf("%d",&a),(a+a*a)/2)););}
*/
int main(){int i=9,a;while(scanf("%d",&a),printf("%d\n",(a+a*a)/2),i--);}

Pewnie są jeszcze jakieś sztuczki które skrócą kod...

0

No i super: 91 znaków. Teraz pytanie jak zejść np. do 60 :D

0

Obawiam się w 60 że się nie da.

Lista słówek kluczowych bez których nie dasz po prostu rady w C tego napisać - tylko wzór, zmienna, pętla, scanf i printf. Bez absolutnie żadnej logiki - 70 znaków:

#include<stdio.h>
int i= main(){}while(),(a+a*a)/2 scanf"%d"printf"%d\n"

Ale nie wpadaj w pesymizm, wywal po prostu int przed main i już 4 znaki lepiej :)

#include<stdio.h>
/*
int main(){for(int i=10,a;i--&&printf("%d\n",(scanf("%d",&a),(a+a*a)/2)););}
*/
main(){int i=9,a;while(scanf("%d",&a),printf("%d\n",(a+a*a)/2),i--);}
0

No to mamy 87.

0
MSM napisał(a)

Obawiam się w 60 że się nie da.

hmm, do 53 mozna zjechac w tym zadania, na razie mi sie udalo do 55 z wzorem 8 znakowym, ale podobno mozna jeszcze go skrocic

0

A możesz podać kod?

0
ne0 napisał(a)

A możesz podać kod?

nie

0

A w ogóle skąd wiesz że można zjechać do 53 a nie np. 52?
Bo napisać to ja sobie wiele rzeczy mogę ;)

0
ne0 napisał(a)

A w ogóle skąd wiesz że można zjechać do 53 a nie np. 52?
Bo napisać to ja sobie wiele rzeczy mogę ;)

Z tego samego zrodla co i Ty masz wymog napisania tego w C/C++ - spoj.pl.

0

Kolego ja nie mam żadnego wymogu. Przeczytaj od początku skąd mam to zadanie, będziesz wiedział. Spoj.pl? Hm wygląda jak podróba opss.safo.biz.
Daj link do tego konkretnie zadania.

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