红联Linux门户
Linux帮助

C 怎么取 一个正数的第一个数

发布时间:2010-09-28 18:04:47来源:红联作者:zzm35837995
例如 一个数 3466,就是要得到3
文章评论

共有 13 条评论

  1. hml1006 于 2011-03-23 13:46:21发表:

    有toascii

  2. blade_zhang 于 2010-11-11 14:37:08发表:

    #include
    #include
    using namespace std;
    int main()
    {
    string str1,str2,str3,str;
    int i,j,k;
    char t;
    cout <<"please input three strings:";
    cin >>str1 >>str2 >>str3;
    str=str1+str2+str3;
    for(i=0;i<9;i++)
    cout <cout <for(i=0;i<8;i++)
    {
    k=i;
    for(j=i+1;j<9;j++)
    if(str[j]>str[k]) k=j;
    t=str[k];
    str[k]=str[i];
    str[i]=t;
    }
    cout <<"the sorted string:" <for(i=0;i<9;i++)
    cout <cout <return 0;
    }


    注:分三次输入数字串,并且数字个数为9,否则溢出。
    如有改进,请赐教。

  3. zzm35837995 于 2010-10-08 09:16:18发表:

    8# fengfeixue
    这个看着清楚

  4. olderlong 于 2010-10-06 19:35:51发表:

    引用:
    #include

    int
    main(void)
    {
    int i = 0, ret = 0;

    printf( "Input the number:\n" );
    scanf( "%d", &i );

    while( 0 != i )
    {
    ret = i % 10;
    i = i / 10;
    }
    printf( "%d\n", ret );
    ...
    fengfeixue 发表于 2010-9-30 18:14

    这个有用,呵呵。

  5. metatron_x 于 2010-10-04 11:42:35发表:

    各路英豪都很踊跃啊

  6. 无心出岫 于 2010-10-02 21:44:15发表:

    直接3476这个数取3就用3476%1000,就可以了。

  7. fengfeixue 于 2010-09-30 18:14:55发表:

    #include

    int
    main(void)
    {
    int i = 0, ret = 0;

    printf( "Input the number:\n" );
    scanf( "%d", &i );

    while( 0 != i )
    {
    ret = i % 10;
    i = i / 10;
    }
    printf( "%d\n", ret );
    return 0;
    }

  8. alick 于 2010-09-30 13:05:50发表:

    没有itoa()是因为不需要。不是吗?

  9. zzm35837995 于 2010-09-29 13:15:54发表:

    [i=s] 本帖最后由 zzm35837995 于 2010-9-29 14:08 编辑 [/i]

    原来linux 下没有itoa ,下面是我写的代码
    #include
    #include
    int main ()
    {
    int x,y;
    scanf("%d",&n);
    char str[50];
    char x[10];
    sprintf(str, "%d" , n);
    sscanf(str,"%1s",x);
    printf("%s\n",x);
    y=atoi(x);
    printf("%d\n",y);
    return 0;

    }
    然后还有一个问题,写一组数,把这组数组成一个新的数,这个数要是最大的,例如:输入 346,8765,23,要得到的是876534623 , 我的想法是这样的,用2个数组 分别存放 输入的数 和输入数的第一个数字, 然后比较第一个数字的大小,排序,再找到对应的数,按顺序连成新的最大数。 这样可行吗?

  10. foxicel 于 2010-09-29 11:51:52发表:

    格式化输出第一个字母,就行了。

  11. vfdff 于 2010-09-29 01:21:36发表:

    sscanf 格式化输入一个 %c 就可以了!

  12. alick 于 2010-09-28 22:12:47发表:

    不确定几位的话,也可以打印到字符串里(sprintf),然后取第一个字符。当然,转换回还得减去'0'

  13. 相思爱文 于 2010-09-28 20:47:45发表:

    整除1000就行了,五位数就整除10000,……