| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1847 人关注过本帖
标题:想把r限制在2,8,10,16中如何修改程序
只看楼主 加入收藏
xjf222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-23
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:6 
想把r限制在2,8,10,16中如何修改程序
#include <stdio.h>

int main()
{
    int a,k=0,r,t;
    char b[20];
    printf("请输入一个正整数:");
    scanf("%d",&a);
    printf("请输入要转换的进制:");
    scanf("%d",&r);
    while(a>0)
    {
        t=a%r;
        if(t<10)
           b[k++]=t+'0';
           else
            b[k++]=t-10+'A';
           a/=r;
     }
           printf("转换的结果为:");
            while(k--)
            printf("%c",b[k]);

        return 0;
}
搜索更多相关主题的帖子: 限制 修改 printf scanf while 
2018-04-23 15:21
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:15 
在输入进制前加个条件语句
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    int a,k=0,r,t;
    char b[20];
    printf("请输入一个正整数:");
    scanf("%d",&a);
    printf("请输入要转换的进制:");
    scanf("%d",&r);
    while(r!=2 && r!=8 && r!=10 && r!=16)
     {printf("你输入转换进制有误请重新输入:\n");
     scanf("%d",&r);
     }
    while(a>0)
    {
        t=a%r;
        if(t<10)
           b[k++]=t+'0';
           else
            b[k++]=t-10+'A';
           a/=r;
     }
           printf("转换的结果为:");
            while(k--)
            printf("%c",b[k]);
        printf("\n");   
        system("pause");   
        return 0;
}

[此贴子已经被作者于2018-4-23 16:12编辑过]

2018-04-23 15:55
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
加一个do循环判断,如下:
程序代码:
#include <stdio.h>

int main()
{
    int a,k=0,r,t;
    char b[20];
    printf("请输入一个正整数:");
    scanf("%d",&a);
    do
    {
        printf("请输入要转换的进制:");
        scanf("%d",&r);
    }while(!(r==2||r==8||r==10||r==16));
    while(a>0)
    {
        t=a%r;
        if(t<10)
            b[k++]=t+'0';
        else
            b[k++]=t-10+'A';
        a/=r;
    }
    printf("转换的结果为:");
    while(k--)
        printf("%c",b[k]);
    
    return 0;
}

能编个毛线衣吗?
2018-04-23 15:56
xjf222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-23
收藏
得分:0 
回复 2楼 dzy123原题是这样的请问要怎么改呢
从标准输入设备读入一个十进制整数n (n>=0), 把它转换为r进制并输出.

Input
第一行是T(T<=100),表明后面有T组测试数据,每组测试数据第一个数为n(-2^31 <= n <= 2^31 - 1),随后是正整数r. 两个整数间有一个空格. 其中, 符号”^”代表幂运算, r取值集合为{2, 8, 10, 16}.

Output
对应每一组测试数据, 输出一行结果, 即对应的r进制, 具体可参考样例.

Sample input and output
Sample Input    Sample Output
1
-1 16            0xffffffff
               
2018-04-23 16:31
xjf222
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2018-4-23
收藏
得分:0 
回复 3楼 wmf2014原题是这样的请问要怎么改呢
从标准输入设备读入一个十进制整数n (n>=0), 把它转换为r进制并输出.

Input
第一行是T(T<=100),表明后面有T组测试数据,每组测试数据第一个数为n(-2^31 <= n <= 2^31 - 1),随后是正整数r. 两个整数间有一个空格. 其中, 符号”^”代表幂运算, r取值集合为{2, 8, 10, 16}.

Output
对应每一组测试数据, 输出一行结果, 即对应的r进制, 具体可参考样例.

Sample input and output
Sample Input    Sample Output
1
-1 16            0xffffffff
               
2018-04-23 16:31
随新飞翔
Rank: 2
等 级:论坛游民
帖 子:10
专家分:14
注 册:2018-3-16
收藏
得分:5 
在2楼的基础上加个大循环
for(int i=0;i<T;i++)i=0;i<T;i++
然后再修改一下输入方式就可以了
2018-04-26 15:10
随新飞翔
Rank: 2
等 级:论坛游民
帖 子:10
专家分:14
注 册:2018-3-16
收藏
得分:0 
手机编辑的,看得懂就好
2018-04-26 15:11
快速回复:想把r限制在2,8,10,16中如何修改程序
数据加载中...
 
   



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

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