Results 1 to 5 of 5
Thread: Âúïðîñ çà C
Hybrid View
-
22nd April 2009 01:36 #1
Âúïðîñ çà C
Ñëåäíàòà êðàòêà ïðîãðàìêà ïðàâè íåùî, êîåòî íå ðàçáèðàì... òî ñúñ ñèãóðíîñò å ìíîãî ïðîñòî è âñå ïàê íèêúäå íå ãî ïèøå, òà ðåøèõ äà ïîïèòàì.

Òàêà, òàçè ïðîãðàìà ÷åòå íèç è òúðñè ïúðâèÿ èíòåðâàë.Àêî íàìåðè òàêúâ, îòïå÷àòâà îñòàòúêà îò íèçà. Òîâà, êîåòî íå ðàçáèðàì å çàùî ôðàãìåíòà "printf (p);" íå ïîêàçâà ñàìî ïúðâèÿ çíàê ñëåä èíòåðâàëà, à öåëèÿ íèç ñëåä èíòåðâàëà.Code:#include <iostream.h> #include <string.h> #include <stdio.h> int main () { char str[10], *p; printf ("Enter string: "); gets (str); p=str; while (*p && *p!=' ') p++; printf (p); system ("pause"); return 0; }
Àç áèõ ãî íàïðàâèë òàêà:
while(*p) { printf (*p); p++;} íî òîâà íå ðàáîòè åñòåñòâåíî. Íåðàçáèðàíåòî ìè å ïîðîäåíî îò òîâà, ÷å óæ óêàçàòåëÿ ñúäúðæà àäðåñà íà ïðîìåíëèâà, è ïðè printf (p) î÷àêâàì äà âèäÿ àäðåñà òàì äîêúäåòî å ñòèãíàëî èíêðåìåòèðàíåòî íà p. Âúïðîñúò ìè å êàê ðåàëíî ñòàâàò íåùàòà òóê?
-
22nd April 2009 01:54 #2
Ïðî÷åòè ïî-âíèìàòåëíî êàê ðàáîòè printf. Àêî èñêàø äà ïå÷àòàø öÿë ñòðèíã, òðÿáâà äà ïîëçâàø printf("%s", p);. Àêî èñêàø ñàìî åäèíñòâåí ñèìâîë (òâîÿ ïîäõîä) - òðÿáâà äà å printf("%c", *p);.
Åòî òàêà ñå ïëîäÿò òå, êàçâàì ñè àç. Ïîä íîñà òè.
"640K îught to be enough for anybody" - Bill Gates, 1981
Òåñòîâå íà áàòåðèè::Machine specs::Fract::AGG::ÍåÑåÑúðäè×îâå÷å::Baileys::blog::YouTube channel
-
22nd April 2009 07:37 #3
printf(p) èçâåæäà íèçà, ñî÷åí îò p, çàùîòî ãî âúçïðèåìà êàòî ôîðìàòåí ñïåöèôèêàòîð, êàêúâòî òðÿáâà äà å ïúðâèÿò àðãóìåíò íà printf. Àêî â íåãî íÿìà êîìáèíàöèè îò ñèìâîëè, êîèòî ìîãàò äà ñå èíòåðïðåòèðàò êàòî ôîðìàòíè ñïåöèôèêàòîðè (%íåùî), òî ùå ñå èçâåäå öÿëàòà ñòîéíîñò íà íèçà. Òîâà å ìàëêî... íåòðàäèöèîíåí ïîäõîä êúì èçâåæäàíå íà íèçîâå, ïðèçíàâàì
Èíà÷å çà èçâåæäàíå íà åäèí ñèìâîë ñå ïîëçâà putchar(*p). Àêî ïúê èñêàø äà âèäèø ñòîéíîñòòà íà ñàìîòî p (àäðåñà íà óêàçàòåëÿ, à íå ñòîéíîñòòà, êîÿòî òîé ñî÷è), òî ïîìàãà printf("%x", p).
Internet - it doesn't make you stupid, it just makes your stupidity more accessible to others
-
22nd April 2009 09:24 #4
-
3rd May 2009 22:25 #5
Ìàëêî äà úïíà òåìàòà, ÷å ïàê èìàì âúïðîñ÷å
Çíà÷èè ñÿ ðåøàâàì ñëåäíàòà çàäà÷à:
Äàäåíà å ìàòðèöà unsigned a[5][5]. Äà ñå íàïèøå ôóíêöèÿ void fillMatrix (a[][5], unsigned n), êîÿòî çàïúëâà ñ ÷èñëà åëåìåíòèòå a[][] ïî ñëåäíèÿ íà÷èí:
Ñåãà òóê å íÿêàêâà ãðàôèêà, íî ùå îáÿñíÿ êàêâî ïðåäñòàâëÿâà. Âñè÷êè ÷èñëà ïî ãëàâíèÿ äèàãîíàë ñà íóëè.Ïîñëå, ïîä ãëàâíèÿ äèàãîíàë çàïî÷âà çàïúëâàíå ïî ñòúëáîâå, êàòî íà ïúðâèÿ ñòúëá ñà ÷èñëàòà îò 1-4, íà âòîðèÿ îò 5-7, òðåòèÿ 8-9, ÷åòâúðòèÿ 10, (a[0][0] è a[n][n] ñà îò ãëàâíèÿ äèàãîíàë è ñà íóëè). Ïîñëå, çàïúëâàíåòî ïðîäúëæàâà íàä ãëàâíèÿ äèàãîíàë, çàïî÷âàéêè îò a[4][5] (÷èñëîòî íàä a[5][5]) ñ 11, è òàêà ïîñëåäíèÿ ñòúëá - 11-14, ïðåäïîñëåäíèÿ 15-17, òðåòèÿ 18-19, âòîðè - 20. Ðåøèõ âñå ïàê äà íàïðàâÿ èìïðîâèçèðàíà òàáëèöà:
0 20 19 17 14
1 0 18 16 13
2 5 0 15 12
3 6 8 0 11
4 7 9 10 0
Îïðàâèõ ñå, åòî ðåøåíèåòî.
Code:#include <iostream.h> #include <iomanip.h> using namespace std; void fillMatrix(unsigned a[][5], unsigned n); unsigned int a[5][5], i, j, step = 0; const int n = 5; int main (void) { fillMatrix (a, n); for (i = 0; i < n; i++) { for (j = 0; j < n; j++) cout<<setw(5)<<a[i][j]; cout<<endl; } system ("pause"); return 0; } void fillMatrix(unsigned a[][5], unsigned n) { for(i=0; i<n ; i++) for(j=0; j<n; j++) a[i][j]=0; for (j=0; j<n-1; j++) for (i=1; i<n; i++) { step++; a[i][j] = step; } step = 21; for (j=1; j<n; j++) for (i=0 ; i<j ; i++) { step--; a[i][j] = step; } }Last edited by 0wn3r; 4th May 2009 at 00:04.




Reply With Quote
Lenovo ThinkPad 15 èëè IdeaPad 15
5th May 2023, 22:16 in Ìîáèëíè êîìïþòðè