| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:急- 一道作业。
只看楼主 加入收藏
alwayssmile
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-5
收藏
 问题点数:0 回复次数:9 
急- 一道作业。
是老师布置的作业,就是要编写一个能让输入的数字转换成各个进制的程序。
以下是我写的程序:
/*
*   功能:数字转换
*/
#include<stdio.h>
int main()
{
    char digit[]="0123456789ABCDEF";
    char again='y';
    int num=0;
    int yushu[100]={0};             //存储转换中的位数数字
    int base=0;
    int i=0;
    int temp=0;
   

    printf("************************************************\n");
    printf("*    Welcome to sue number_format convertor!   *\n");
    printf("************************************************\n");

    do{
        printf("请输入一个数\n");
        scanf("%d",&num);
        printf("输入要转换的目标基\n");
        scanf("%d",&base);
        
        temp=num;
        i=0;
        while(temp!=0)
        {
            yushu[i++] = temp%base;
            temp /= base;
        }
        printf("结果为:\n");
        if(base==8)
        {
            printf("0");
        }
        else if(base==16)
        {
            printf("OX");
        }
        for(--i; i>=0; i--)
        {
            int index = yushu[i];
            printf("%c",digit[index]);
        }
        putchar('\n');
        printf("again(y/n)?");
        scanf("%c",&again);
    }while(again =='y');


    return 0;
}


在程序运行的时候发现不能再再次操作。就是do..while出现了问题- -。想了很久不知道问题在哪里。
各位大大这个问题可能很弱智- -。但是能不能别打击初学者呢。


还有就是最近在学数组,就是对二维、多维数组的概念还是不太清楚。有没有人能解释的简单易懂的0 0.
还有后面马上就要学指针了,有什么要注意的。
搜索更多相关主题的帖子: Welcome include 
2012-11-08 20:24
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    char digit[]="0123456789ABCDEF";
    char again='y';
    int num=0;
    int yushu[100]={0};             //存储转换中的位数数字
    int base=0;
    int i=0;
    int temp=0;
    

    printf("************************************************\n");
    printf("*    Welcome to sue number_format convertor!   *\n");
    printf("************************************************\n");

    do{
        printf("请输入一个数\n");
        scanf("%d",&num);
        printf("输入要转换的目标基\n");
        scanf("%d",&base);
       
        temp=num;
        i=0;
        while(temp!=0)
        {
            yushu[i++] = temp%base;
            temp /= base;
        }
        printf("结果为:\n");
        if(base==8)
        {
            printf("0");
        }
        else if(base==16)
        {
            printf("OX");
        }
        for(--i; i>=0; i--)
        {
            int index = yushu[i];
            printf("%c",digit[index]);
        }
        putchar('\n');
        printf("again(y/n)?");
        getchar();//把之前的空格换行接收了
        scanf("%c",&again);// scanf函数有可能接收空格换行符的。
    }while(again =='y');


    return 0;
}


[ 本帖最后由 C_戴忠意 于 2012-11-8 21:04 编辑 ]

编程之路定要走完……
2012-11-08 21:01
alwayssmile
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-5
收藏
得分:0 
回复 2楼 C_戴忠意
没懂耶- -那怎么解决喔。

-
-
-
-
-
好好学习丶天天向上。
2012-11-08 21:04
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
学习语言是个循序渐进的过程,
建议楼主多多看书,写写简单的程序,
刚开始就是在学习语法,等你把这些基础的东西搞明白了编码的能力自然提升。

编程之路定要走完……
2012-11-08 21:07
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
回复 3楼 alwayssmile
在scanf();之前加一个getchar();把空格符换行符接收了不就行了。我写在程序里了,你试试。

编程之路定要走完……
2012-11-08 21:08
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
你看看scanf 函数是怎么说的,可以上网收一下,在接收字符这一块有说明的。

编程之路定要走完……
2012-11-08 21:09
alwayssmile
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-5
收藏
得分:0 
编程真是一个令人崩溃的事情- -。经常没有错误没有警告但是结果跟预想的不一样,找到崩溃。。。

-
-
-
-
-
好好学习丶天天向上。
2012-11-08 21:18
C_戴忠意
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:2
帖 子:575
专家分:1349
注 册:2011-10-21
收藏
得分:0 
解决了吧,编程思维得严密,呵呵,慢慢习惯就好了。

编程之路定要走完……
2012-11-08 21:21
alwayssmile
Rank: 1
来 自:福建福州
等 级:新手上路
帖 子:6
专家分:0
注 册:2012-11-5
收藏
得分:0 
每道题目都得花掉我好久,以前的题目还简单,自从学了数组就有点力不从心了。
题目:假定单词之间空格隔开从终端输入一行字符串,求出其中一共几个单词,并且最长的长度。
我的程序:
程序代码:
#include<stdio.h>
int main()
{
    char string[100] = "\0";
    int word = 0;
    int count = 0;
    int i = 0;
    int max = 0;
    int length = 0;
    int c = 0;
    printf("input a string:\n");
    gets(string);
    c=string[0];
    while(c=='\0');
    {
        if(c!=' '&&word==0)
        {
            word = 1;
            count++;
            length++;
        }
        else if(c!=' '&&word==1)
        {
            length++;
        }
        else if(c==' '&&word==1)
        {
            word = 0;
            if(max = length)
            {
               max = length;
            }
             length = 0;           //为了给下一个判断初始化
            c = string[++i];
        }
        if(max<length)            //为了防止结尾不是空格的错误
        {
            max = length;
        }
    }
    printf("%d%d",count,max);
    return 0;
}
结果又是不尽人意- -没有错误没有警告。。。

-
-
-
-
-
好好学习丶天天向上。
2012-11-08 21:55
weishen2011
Rank: 2
等 级:论坛游民
帖 子:92
专家分:70
注 册:2012-10-16
收藏
得分:0 
学习中!
2012-11-08 22:26
快速回复:急- 一道作业。
数据加载中...
 
   



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

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