مربع - كيفية كتابة الاكواد في c++




كيفية طباعة سلسلة دخلت إلى الوراء في C باستخدام فقط ل حلقة (4)

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

رمز بلدي،

   #include <stdio.h>
   #include <string.h>

   int main(void) {

char word[50];
char end;
char x;

printf("Enter a word and I'll give it to you backwards: ");

scanf("%s", word);

end = strlen(word) - 1;

for (x = word[end]; x >= word[0]; x--) {
    printf("%c", x);
}

return 0;
}

أي اقتراحات؟ شكرا لكم.


تريد طباعة word[x] (الحرف word[x] في المصفوفة) بدلا من x (الحرف x في مجموعة الأحرف).

كما تريد أن تكون العد التنازلي للمؤشرات، وليس الأحرف.

for(x=end, x >= 0; x--)
    printf("%c", word[x]);

في الحلقة الخاصة بك، x هو الفهرس في مجموعة الأحرف تضم word . لذا يجب أن يتغير x من end إلى 0 ، وينبغي أن تكون الإشارة إلى المصفوفة word[x] .


أنت تدعو قيم الصفيف وليس الفهرس المحدد.

for(x = end; x >= 0; x--) { printf("%c", word[x]); }

//Change end to int type and modify your for loop as shown.
#include <stdio.h>
#include <string.h>

int main(void) 
{

char word[50];
int end;
char x;

printf("Enter a word and I'll give it to you backwards: ");

scanf("%s", word);

end = strlen(word) - 1;

 for (x = end; x >= 0; x--) 
 printf("%c",word[x] );


return 0;
}




for-loop