| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 407 人关注过本帖
标题:C语言数组的题目,求解答
只看楼主 加入收藏
XT19870731
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2018-3-11
结帖率:0
  已结贴   问题点数:20  回复次数:3   
C语言数组的题目,求解答
Problem Description

输入一个不多于5位的正整数,要求:
(1)求出它是几位数;
(2)分别输出每一位数字;
(3)按逆序输出各位数字。
Input

输入一个不多于5位的正整数。
Output

输出数据有3行,第一行为正整数位数,第二行为各位数字,第三行为逆序的各位数字。
Sample Input

123
Sample Output

3
1 2 3
3 2 1
2018-03-11 20:04
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
  得分:7 
数组题目~
为啥一定要用数组~
当然用数组还是可以的~


程序代码:

#include<stdio.h>
#include<string.h>

void fun ( void );

int main( void )
{
    fun();
   
    return 0;
}

void fun ( void )
{
    #define __MAX 20
   
    char s[2][__MAX];
    char c;
   
    size_t i;
   
    memset(s,' ',sizeof (s));

    for (i=0;(c=getchar())!='\n'&&i<__MAX/2;++i)
        s[0][i*2]=s[1][__MAX-i*2-2]=c;
   
   if (i==0)
   {
       puts("0");
       return ;
   }
   
    s[0][i*2-1]=s[1][__MAX-1]='\0';
   
    printf("%u\n",( unsigned )i);
    puts(s[0]);
    puts(s[1]+__MAX-i*2);
   
    #undef __MAX
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-03-11 21:52
浅草没马蹄
Rank: 2
来 自:湖北
等 级:论坛游民
帖 子:12
专家分:18
注 册:2018-3-10
  得分:7 
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

int main()
{
    char str[10]="";
    int i=0;
    printf("请输入数字,以\\0作为结束符!\n");
    while(1)
    {
        scanf("%d",&str[i]);
        i++;        //作为下标和记录是几位数(结果要加1)
        if(i>=10||i=='\0')
            break;    // 输入过多或者输入结束后跳出循环
    }
    printf("这是一个 %d 位数\n",i);
    printf("这个数的每一位分别是:\n");
    int j=0;
    for(j=0;j<10;j++)
    {
        printf("%d ",str[j]);
    }
    printf("\n");
    int temp=0;
    int k=0;
    for(k=0;k<i;k++)
    {
        temp=str[k];
        str[k]=str[i-k];
        str[i-k]=str[k];
    }
    printf("逆序后的数为:\n");
    int h=0;
    for(h=0;h<10;h++)
    {
        printf("%d ",str[h]);
    }
    printf("Hello world!\n");
    return 0;
}
大佬帮忙看看问题在哪吧?我实在是无能为力了。
2018-03-11 22:22
LiGoudan
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:20
专家分:148
注 册:2018-2-28
  得分:7 
回复 3楼 浅草没马蹄
程序代码:
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

int main()
{
    char str[10]="";
    int count = 0;
    char temp;
    printf("请输入数字,以\\0作为结束符!\n");
    while((temp = getchar()) != '\n' && count < 10)
    {
        str[count++] = temp;
    }
    printf("这是一个 %d 位数\n", count);
    printf("这个数的每一位分别是:\n");
    int index = 0;
    for (index = 0; index < count; index++)
    {
        printf("%c ",str[index]);
    }
    printf("\n逆序后的数为:\n");
    for (int index = count - 1; index >= 0; index--)
    {
        printf("%c ",str[index]);
    }
    printf("\n");
    return 0;
}

仅供参考!
2018-03-11 23:17







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

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