الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف أجعل طباعة الارقام في سطر واحد

بدأه tantie L في 1 مارس 2014 · 4 رد · 796 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله و بركاته

اخواني اساتذتي الكرام 

في هذا الكود يدخل المستخدم ارقاما فيقوم البرنامج بطبعها على شكل ارقام الالة الحاسبة، في الكود الخاص بي البرنامج يقوم بطباعة الارقام لكن ليست في سطر واحد فكيف يمكنني ان اجعلها في سطر واحد

هذا هو الكود 

#include<stdio.h>#include<string.h>void line_1(char n){    char *l;    switch(n)    {        case '0': l="....";puts(l);break;        case '1': l=".";puts(l);break;        case '2': l="....";puts(l);break;        case '3': l="....";puts(l);break;        case '4': l=".   ";puts(l);break;        case '5': l="....";puts(l);break;        case '6': l="....";puts(l);break;        case '7': l="....";puts(l);break;        case '8': l="....";puts(l);break;        case '9': l="....";puts(l);break;    }}void line_2(char n){    char *l;    switch(n)    {case '0': l=".  .";puts(l);break;    case '1': l=".";puts(l);break;    case '2': l="   .";puts(l);break;    case '3': l="   .";puts(l);break;    case '4': l=".  .";puts(l);break;    case '5': l=".   ";puts(l);break;    case '6': l=".   ";puts(l);break;    case '7': l="   .";puts(l);break;    case '8': l=".  .";puts(l);break;    case '9': l=".  .";puts(l);break;}}void line_3(char n){    char *l;    switch(n)    {case '0': l=".  .";puts(l);break;    case '1': l=".";puts(l);break;    case '2': l="....";puts(l);break;    case '3': l="....";puts(l);break;    case '4': l="....";puts(l);break;    case '5': l="....";puts(l);break;    case '6': l="....";puts(l);break;    case '7': l="   .";puts(l);break;    case '8': l="....";puts(l);break;    case '9': l="....";puts(l);break;}}void line_4(char n){    char *l;    switch(n)    {case '0': l=".  .";puts(l);break;    case '1': l=".";puts(l);break;    case '2': l=".   ";puts(l);break;    case '3': l="   .";puts(l);break;    case '4': l="   .";puts(l);break;    case '5': l="   .";puts(l);break;    case '6': l=".  .";puts(l);break;    case '7': l="   .";puts(l);break;    case '8': l=".  .";puts(l);break;    case '9': l="   .";puts(l);break;}}void line_5(char n){    char *l;    switch(n)    {case '0': l="....";puts(l);break;    case '1': l=".";puts(l);break;    case '2': l="....";puts(l);break;    case '3': l="....";puts(l);break;    case '4': l="   .";puts(l);break;    case '5': l="....";puts(l);break;    case '6': l="....";puts(l);break;    case '7': l="   .";puts(l);break;    case '8': l="....";puts(l);break;    case '9': l="....";puts(l);break;}}main(){    char nbr[20],c;    int i,len;    printf("entrer un nbr SVP : ");    gets(nbr);    len=strlen(nbr);    for(i=0;i<len;i++)    {        c=nbr;        if(isdigit(c))        {            line_1(c);            line_2(c);            line_3(c);            line_4(c);            line_5(c);        }        else            printf("%c",c);    }}

و نتيجته كالاتي 

 

eG0sd.jpg

 

فماذا افعل حتى تكون الارقام مطبوعة في سطر واحد؟

بارك الله فيكم و وفقكم الى كل الخير

2

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

#2
ممكن تجعل كل من الاجراءات line_1 إلى line_5 عبارة عن دوال تعيد نص بواسطة return بدلا من puts مباشرة

وفي الاجراء main بدل من line_1(c); إلى line_5(c); تقدر تستخدم سطر واحد كالتالي


puts( line_1(c) + line_2(c) + line_3(c) + line_4(c) + line_5(c) );

تم تعديل هذه المشاركة بواسطة vbnetvbnet في 1 مارس 2014 في 19:41

−1

.

أقوال مميزة من منتدى الفريق العربي للبرمجة (قيد التحديث)

 

الأستاذ: محمد طلال بدوي كتب:

إن صحبة الناجحين تصيب بعدوى النجاح، ويا لها من عدوى جميلة، تشعرك بجو من الحماسة والمنافسة، وتبقيك مشتعلا في بحث مستمر عن المراكز الأولى.

الدكتورة: زهرة (أم عهود) كتب:

والله لا نريد من هذه الدنيا شيء إلا ان نكون اخوة متحابين في الله يجمعنا طلب العلم ومساعدة الآخرين لوجه الله تعالى.

.
#3

أختي الكريمة الحل بسيط ..

قومي بعمل مصفوفة محرفية خاصة بالخرج , أبعادها كبيرة بما يكفي

والآن :

كلما أردت القيام بعملية طباعة قومي بنسخ الحروف المطلوب طباعتها إلى المصفوفة (في المكان المناسب ) بدلاً من طباعتها إلى الخرج

وفي نهاية البرنامج قومي بطباعة المصفوفة كاملة

بالتوفيق

#4

يلزمك حلقتي تكرار في حالتك، مثلاً لطباعة ثلاث أرقام، تريدين أن يفعل برنامجك:

nbr[0] line_1, nbr[1], line_1, nbr[2], line_1
nbr[0] line_2, nbr[1], line_2, nbr[2], line_2
nbr[0] line_3, nbr[1], line_3, nbr[2], line_3
nbr[0] line_4, nbr[1], line_4, nbr[2], line_4
nbr[0] line_5, nbr[1], line_5, nbr[2], line_5

هذا تعديل (التغييرات في البرنامج http://diffchecker.com/ibrd5tez):

#include <stdio.h>#include <string.h>#include <ctype.h> // isdigitvoid line_1(char n){    const char *l; // "????" is not 'char *', 'const char *'    switch(n)    {        case '0': l="....";printf(l);break;        case '1': l=".   ";printf(l);break;        case '2': l="....";printf(l);break;        case '3': l="....";printf(l);break;        case '4': l=".  .";printf(l);break;        case '5': l="....";printf(l);break;        case '6': l="....";printf(l);break;        case '7': l="....";printf(l);break;        case '8': l="....";printf(l);break;        case '9': l="....";printf(l);break;    }}void line_2(char n){    const char *l;    switch(n)    {    case '0': l=".  .";printf(l);break;    case '1': l=".   ";printf(l);break;    case '2': l="   .";printf(l);break;    case '3': l="   .";printf(l);break;    case '4': l=".  .";printf(l);break;    case '5': l=".   ";printf(l);break;    case '6': l=".   ";printf(l);break;    case '7': l="   .";printf(l);break;    case '8': l=".  .";printf(l);break;    case '9': l=".  .";printf(l);break;}}void line_3(char n){    const char *l;    switch(n)    {    case '0': l=".  .";printf(l);break;    case '1': l=".   ";printf(l);break;    case '2': l="....";printf(l);break;    case '3': l="....";printf(l);break;    case '4': l="....";printf(l);break;    case '5': l="....";printf(l);break;    case '6': l="....";printf(l);break;    case '7': l="   .";printf(l);break;    case '8': l="....";printf(l);break;    case '9': l="....";printf(l);break;}}void line_4(char n){    const char *l;    switch(n)    {    case '0': l=".  .";printf(l);break;    case '1': l=".   ";printf(l);break;    case '2': l=".   ";printf(l);break;    case '3': l="   .";printf(l);break;    case '4': l="   .";printf(l);break;    case '5': l="   .";printf(l);break;    case '6': l=".  .";printf(l);break;    case '7': l="   .";printf(l);break;    case '8': l=".  .";printf(l);break;    case '9': l="   .";printf(l);break;}}void line_5(char n){    const char *l;    switch(n)    {    case '0': l="....";printf(l);break;    case '1': l=".   ";printf(l);break;    case '2': l="....";printf(l);break;    case '3': l="....";printf(l);break;    case '4': l="   .";printf(l);break;    case '5': l="....";printf(l);break;    case '6': l="....";printf(l);break;    case '7': l="   .";printf(l);break;    case '8': l="....";printf(l);break;    case '9': l="....";printf(l);break;}}int main(){    char nbr[20],c;    int i, j, len;    printf("entrer un nbr SVP : ");    scanf("%19s", nbr);// bad gets(nbr);    len=strlen(nbr);    for(j=0;j<5;j++)    {      for( i = 0 ; i < len ; i++ ) {        c=nbr;          if(isdigit(c))          {            switch(j){              case 0: line_1(c); break;              case 1: line_2(c); break;              case 2: line_3(c); break;              case 3: line_4(c); break;              case 4: line_5(c); break;            }          }        // else            // printf("%c",c);          printf(" ");      }      puts("");    }  return 0;}

الناتج:

.    .... .... .  . .... .... .... .... ....
.       .    . .  . .    .       . .  . .  .
.    .... .... .... .... ....    . .... ....
.    .       .    .    . .  .    . .  .    .
.    .... ....    . .... ....    . .... ....

تم تعديل هذه المشاركة بواسطة Mr.B في 1 مارس 2014 في 22:17

2
#5

اخي الكريم مصطفى و استاذ Mr.B اشكركما حقا على المساعدة بارك الله فيكم

ابتسم للدنيا تبتسم لك و افعل الخير و انساه و لا تنسى أي أمر سيء قمت به حتى لا تكرره


لا تنسونا من صالح دعائكم أعانكم الله و ثبتكم على سواء السبيل


:)  :lol:  ^_^ 

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…