Печать всех символов ASCII между двумя заданными символами в C - PullRequest
0 голосов
/ 23 февраля 2019

Я создал программу для распечатки всех символов ASCII между двумя заданными символами, но затем я пишу это в функциях.Вывод двух этих программ различен.Я пытался использовать указатель для передачи переменных по ссылке, но вывод вряд ли будет похож на первую программу.Что я должен сделать, чтобы сделать это правильно?

Вот первая программа на C с использованием линейного программирования.

#include <stdio.h>>
int main() 
{
    char a,b,tmp;
    int d;
    scanf("%c%c",&a,&b);
    if(a>b) 
    {
        tmp=a;
        a=b;
        b=tmp;
    }
    d = b - a;
    for (char c = a+1;c<b;c++) 
    {
        printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}     

Вот другая программа в функциях.

#include <stdio.h>>

void ascii(char a,char b);

int main() 
{
    char a,b,tmp;
    int d;
    printf("Enter 2 character => ");
    scanf("%c%c",&a,&b);
    ascii(&a,&b);
}

void ascii(char a,char b)
{
    int d;
    if (a>b) 
    {
        char tmp= a;
        a=b;
        b=tmp;
    }
    d=b-a;
    for (char c=a+1;c<b;c++) 
    {
         printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}

1 Ответ

0 голосов
/ 23 февраля 2019

Вы не должны передавать адреса своих переменных в вашу функцию, правильная

#include <stdio.h>>

void ascii(char a,char b);

int main() 
{
    char a,b,tmp;
    int d;
    printf("Enter 2 character => ");
    scanf("%c%c",&a,&b);
    ascii(a,b);
}

void ascii(char a,char b)
{
    int d;
    if (a>b) 
    {
        char tmp= a;
        a=b;
        b=tmp;
    }
    d=b-a;
    for (char c=a+1;c<b;c++) 
    {
         printf("%c : %d, %o, %X\n",c,c,c,c);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...