| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 383 人关注过本帖
标题:帮忙看下简单的C语言数组的实现问题!!
只看楼主 加入收藏
z1100710334
Rank: 1
等 级:新手上路
帖 子:17
专家分:4
注 册:2013-3-14
结帖率:25%
收藏
已结贴  问题点数:20 回复次数:1 
帮忙看下简单的C语言数组的实现问题!!
//5968   ab=56   cd=89   千位和个位不为零
编程序实现,其功能是:把千位数字和十位数字重新组成一个新的含有两位数字的数
ab(新数的十位数字是原四位数的千位数字,新数的个位数字是原四位数的十位数字),以及把个位数字
和百位数字组成另一个新的含有两位数字的数cd(新数的十位数字是原四位数的个位数字,新数的个位数
字是原四位数的百位数字),如果新组成的两个位数ab>cd,ab必须是偶数且能被5整除,cd必须是奇数,
同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计
算满足上述条件的四位数的个数cnt。
现在我没排序,直接就输出来要求的数,但是有问题,求教!!!
#include <stdio.h>
#define N 10000
#define M 5000
int main()
{
    int b[M];
    int i,j,a1,a2,a3,a4,b1,b2;
    int k;
    for (i=1001,j=0;i<N;i++)
    {
        a1=i/1000;
        a2=i%1000/100;
        a3=i%100/10;
        a4=i%10;
        b1=a1*10+a3;
        b2=a4*10+a2;
        while(a4!=0 && b1>b2 && i!=N-1)
        {
            if(b1 % 2==0 && b1 % 5==0 && b2 % 2==1)
               
                b[j]=i;
            j++;
        }
    }
    for (k=0;k<j;k++)
    {
        printf("%d ",b[k]);
        
    }
   
    return 0;
   
}
搜索更多相关主题的帖子: 数字 C语言 
2013-04-25 15:03
Explorerlxz
Rank: 9Rank: 9Rank: 9
来 自:zzu
等 级:蜘蛛侠
威 望:4
帖 子:302
专家分:1032
注 册:2013-4-24
收藏
得分:20 
#include <stdio.h>
#define N 10000
#define M 5000//数组不用设这么大
int main()
{
    int b[M];
    int i,j,a1,a2,a3,a4,b1,b2;
    int k;
    for (i=1001,j=0;i<N;i++)
    {
        a1=i/1000;
        a2=i%1000/100;
        a3=i%100/10;
        a4=i%10;
        b1=a1*10+a3;
        b2=a4*10+a2;
        while(a4!=0 && b1>b2 && i!=N-1)//你想让电脑死循环吗?
      {
            if(b1 % 2==0 && b1 % 5==0 && b2 % 2==1)//首先你没有懂得运算符的优先级、其次条件归纳的不好
              
                b[j]=i;
            j++;
        }
    }
    for (k=0;k<j;k++)
    {
        printf("%d ",b[k]);
        
    }
   
    return 0;
   
}
//给你的一份参考答案,希望对你有一点帮助
#include <stdio.h>
#define N 10000
#define M 1000
int main()
{
    int b[M];
    int i,j=0,cnt,t,a1,a2,a3,a4,b1,b2;
    for (i=1001;i<N;i++)
    {
        a1=i/1000;
        a2=i%1000/100;
        a3=i%100/10;
        a4=i%10;
        b1=a1*10+a3;
        b2=a4*10+a2;
        if((a1!=0)&&(a4!=0)&&(a3==0)&&(b1>b2))
        {   b[j]=i;
            j++;
        }
    }
    cnt=j;
    for(i=0;i<cnt;i++)
    for(j=0;j<cnt-i;j++)
    if(b[j]<b[j+1])
    {
        t=b[j];
        b[j]=b[j+1];
        b[j+1]=t;   
    }
    for(i=0;i<cnt;i++)
    printf("%d\t",b[i]);
    printf("cnt=%d",cnt);
return 0;
}
2013-04-26 11:25
快速回复:帮忙看下简单的C语言数组的实现问题!!
数据加载中...
 
   



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

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