注册 登录
编程论坛 C语言论坛

求助简单编程(输入的整数按字符串形式逆序输出)

ftyuijnms 发布于 2022-06-16 12:22, 1305 次点击
老师留的作业,实在没好好学习,一点头绪也没有,可以帮忙生产一份答案吗?跪求.!

编写函数实现将一个正整数转换为与其各位数字逆序的字符串,函数原型为:void IntNumtoStr(int Num,   Char *s)。编写主函数实现如下功能:从键盘输入5个小于10000的正整数,调用IntNumtoStr函数将这5个整数转换成字符串,并将整数及其对应字符串输出到屏幕,分5行输出。(提示:假设a为数值0~9中的任意数字,将其转换为字符的方法是:’0’+a)
4 回复
#2
dogontree2022-06-16 12:58
#include <stdio.h>

int main()
{
    void IntNumtoStr(int Num, char *s);//声明逆序函数
    char c[4]={"\0"},*p;//定义一个4元素char数组和指针
    int num,i;
    p=c;
    for(i=1;i<=5;i++)//输入5个10000内数字,以空格隔开
    {
        scanf("%d",&num);
        IntNumtoStr(num,p);    //调用逆序函数   
    }
    return 0;
   
}

void IntNumtoStr(int Num, char *s)//定义逆序函数
{
   
  int n,m,i;
  m=Num;
    //从个位开始取每位上的数字、转换为对应字符,赋值到数组c,并输出字符
    for(i=0;;i++)
    {
        n=m%10;
        m=m/10;
        *(s+i)='0'+n;
        if(n==0)
        break;
        printf("%c",*(s+i));
    }
    printf("\n");//每调用一次函数,换行一次
   
}
#3
rjsp2022-06-16 13:28
程序代码:
#include <stdio.h>

void IntNumtoStr( unsigned num, char* s )
{
    if( num == 0 )
        *s++ = '0';
    else
    {
        for( ; num!=0; num/=10 )
            *s++ = '0' + num%10;
    }
    *s = '\0';
}

int main( void )
{
    for( size_t i=0; i!=5; ++i )
    {
        unsigned num;
        scanf( "%u", &num );

        char s[21];
        IntNumtoStr( num, s );
        printf( "%u %s\n", num, s );
    }
}


输入输出
0
123
1230
12345000
123000

0 0
123 321
1230 0321
12345000 00054321
123000 000321
#4
追梦人zmrghy2022-06-16 13:47
while(num != 0)
{
   printf("%d", num%10);
   num  /= 10;
}

这么简单,傻子都会!!!!!
#5
ftyuijnms2022-06-16 14:25
感谢感谢
1