| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2766 人关注过本帖
标题:[清理垃圾帖子]
只看楼主 加入收藏
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
不好意思  应该是78  打错了

                                         
===========深入<----------------->浅出============
2011-09-05 21:16
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 31楼 laoyang103
看了19楼的代码我才弄懂意思。

My life is brilliant
2011-09-05 21:18
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
19楼的代码 的确巧妙

                                         
===========深入<----------------->浅出============
2011-09-05 21:25
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
程序代码:
#include <stdio.h>
#include <string.h>

#define next(v) ((v) == 0 ? 25 : (v) - 1)

void swap(char * p1, char * p2)
{
    char tmp = *p1;
    *p1 = *p2;
    *p2 = tmp;
}

void reverse(char * str)
{
    int i, j, k = strlen(str);
   
    for (i = 0, j = k - 1; i < j; i++, j--)
        swap(str + i, str + j);
}

int main(void)
{
    unsigned n, i = 0;
    char buffer[100];
   
    scanf("%u", &n);
    buffer[i++] = next(n % 26) + 'A';
    if(n != 26)
        while (n /= 26)
            buffer[i++] = next((n % 26 ? n : n - 1) % 26) + 'A';
    buffer[i] = '\0';
    reverse(buffer);
    printf("%s\n", buffer);
   
    return 0;
}

应该可以了吧?我回寝室了。

My life is brilliant
2011-09-05 21:41
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
回复 34楼 lz1091914999
试试52吧
2011-09-05 21:45
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
程序代码:
#include "stdafx.h"

void fun(int b){
    if(b>9){
        fun(b/10);
    }
    int c = b%10;
    if(c==0)
        printf("0");
    else{
        printf("%c",c+'A'-1);
    }
}
int main(){
    int a = 0,temp;
    while(a<200){
        printf("%d\t:",a);
        if(a<=26){
            printf("%c\n",a+'A'-1);
        }
        else{
            temp = (int(a/26));
            fun(temp);
            printf("%c",a%26+'A'-1);
            printf("\n");
        }
        a++;
    }
    return 0;
}
都说的这么明白了 进制转换 ,还非得别人写个完整的
几句代码而已,还看不明白?
2011-09-05 23:12
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
以下是引用BlueGuy在2011-9-5 19:50:53的发言:

能不能把代码写的完整一点,
结果都不对,谁还愿意看你的思路啊,
还有,你现在的代码风格怎么写的这么怪异???
下班赶车 吃饭回家,哪有时间写

这题就可以看成进制转换
2011-09-05 23:15
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
上面测试代码 没处理特殊位 0 输出@了 判断后输出下就完全达到你前面的要求了
2011-09-05 23:16
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
哈哈 错了 错了
程序代码:
void fun(int b){
    if(b>=26){
        fun(b/26);
    }
    int c = b%26;
    if(c==0)
        printf("0");
    else
        printf("%c",c+'A'-1);
}
int main(){
    int a = 0,temp;
    while(a<100){
        printf("%d\t:",a);
        fun(a);
        printf("\n");
        a++;
    }
    return 0;
}
只有当数值较小时才能那样

现在这样子应该没错了吧 进制转换应该是这么搞的 唉唉! 半夜起来搞这个囧死了
2011-09-05 23:46
hahayezhe
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖南张家界
等 级:贵宾
威 望:24
帖 子:1386
专家分:6999
注 册:2010-3-8
收藏
得分:0 
唉 尴尬
把Z又搞掉了 void fun(int b){
    if(b>=27){
        fun(b/27);
    }
    int c = b%27;
    if(c==0)
        printf("0");
    else
        printf("%c",c+'A'-1);
}

27 包括0 应该是27进制 汗...
2011-09-05 23:53
快速回复:[清理垃圾帖子]
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014543 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved