2011-12-09 15 views
19

मेरा मानना ​​है कि मैंने पूरे printf() दस्तावेज़ीकरण को ध्यान से पढ़ा है लेकिन float(s) के 10-तत्व सरणी के तत्वों को प्रिंट करने के लिए कोई रास्ता नहीं मिला है।क्या printf() सही ढंग से एक सरणी (फ्लोट्स, कहें) प्रिंट करने का कोई तरीका है?

जैसे, अगर मैं

float[] foo = {1., 2., 3., ..., 10.}; 

तो मैं इस तरह के रूप

printf("what_do_I_put_here\n", foo); 

एक सिंगल स्टेटमेंट कौन सा की तर्ज पर कुछ प्रिंट आउट होता है करना चाहते हैं:

1. 2. 3. .... 10. 

क्या वेनिला सी में ऐसा करने का कोई तरीका है?

+5

मैं जैसे' #define printarr (fmt, डैट, लेन) \t के लिए (; मैं लेन DipSwitch

उत्तर

23

आप सरणी के तत्वों के माध्यम से पुनरावृति करने के लिए

float foo[] = {1, 2, 3, 10}; 
int i; 
for (i=0;i < (sizeof (foo) /sizeof (foo[0]));i++) { 
    printf("%lf\n",foo[i]); 
} 

या बनाने के समारोह है कि snprintf खड़ी रिटर्न और फिर

printf("%s\n",function_that_makes_pretty_output(foo)) 
साथ इसे प्रिंट की जरूरत है
4

आप सरणी और printf() प्रत्येक तत्व के माध्यम से लूप करने के लिए है:

for(int i=0;i<10;++i) { 
    printf("%.2f ", foo[i]); 
} 

printf("\n"); 
2

मुझे नहीं लगता कि वहाँ एक रास्ता है printf में आप के लिए सरणी मुद्रित करने के लिए है। "printf" फ़ंक्शन को पता नहीं है कि आपकी सरणी कितनी देर तक है।

+2

जिसे प्रारूप में निर्दिष्ट किया जा सकता है। लेकिन मुझे नहीं लगता कि ऐसा कोई विनिर्देश मौजूद है। – cnicutar

1

आप एक पाश के लिए जाने की जरूरत है:

for (int i = 0; i < sizeof(foo)/sizeof(float); ++i) 
    printf("%f", foo[i]); 
printf("\n"); 
11

वहां है भाषा में कोई भी कथन नहीं है जो "स्क्रीन पर एक संपूर्ण सरणी मुद्रित करें" कहता है। सरणी में प्रत्येक तत्व को स्क्रीन पर व्यक्तिगत रूप से मुद्रित किया जाना चाहिए।

लेकिन चिंता न करें, छोरों वहाँ आप को बचाने के लिए !, मुझे लगता है कि आपके सवाल का पूरी तरह से था एक तरह से वहाँ है अगर पता करने के लिए और मैं इतना देखने के लिए की जरूरत नहीं है पर 5k प्रतिनिधि के साथ एक व्यक्ति लगता है कर रहे हैं यह जानने के लिए एक कोड स्निपेट कैसे लूप लागू किए जाते हैं!

+17

शायद वह नहीं करता है, लेकिन प्रश्न सभी यहां के लिए उपलब्ध हैं, यहां तक ​​कि 0 प्रतिनिधि के लिए भी;) –

-4

आप स्ट्रिंग के रूप में इसे प्रिंट कर सकते हैं:

printf("%s\n", foo); 
1

सी ओरिएंटेड प्रोग्रामिंग (OOP) भाषा आपत्ति नहीं है। तो आप ओओपी में गुणों का उपयोग नहीं कर सकते हैं। उदाहरण के लिए। सी में कोई लम्बाई संपत्ति नहीं है इसलिए आपको अपने कार्य के लिए लूप का उपयोग करने की आवश्यकता है।

-1

ईमानदार होने के लिए सभी अच्छे हैं लेकिन अगर कोई समय संख्या का उपयोग करता है और उन्हें बाहर दिखाता है तो यह आसान होगा या नहीं। इसलिए यह एक अच्छा विकल्प होगा। पूर्व परिभाषित एरे परिवर्तनीय उपयोगकर्ता को परिभाषित करने और परिणाम दिखाने दें। printf (fmt, डैट [i]) `और इस तरह ..

int main() 
{ 
    int i,j,n,t; 
int arry[100]; 
    scanf("%d",&n); 
    for (i=0;i<n;i++) 
    { scanf("%d",&t); 
     arry[i]=t; 
    } 
for(j=0;j<n;j++) 
    printf("%d",arry[j]); 

return 0; 
} 
संबंधित मुद्दे