注册 登录
编程论坛 新人交流区

[讨论]C程序编程

dydytd3400 发布于 2007-11-17 03:06, 1381 次点击
一道相对简单的编程题,
输入一个十进制整数,将其转换成二进制数输出,并且求其十进制形势与输入数的余数。
例如:
输入 3
转换为二进制输出 11
其十进制形势与输入数的余数 11%3==2
(程序越简单越好,也就是步骤尽量简单,精简。)
还有,虽然有点不现实,但是,还是希望各位不要灌水~
18 回复
#2
东台野人2007-11-17 12:12
哎.我也不会.我刚来的.我等下看回贴.我一会再来学.
#3
learnerboy2007-11-17 16:02

#include "math.h"
main()
{int change(int key);
int key,s,i;
scanf("%d",&key);
if(key==0)
printf("data error!\n");
else
{s=change(key);
printf("%d\n",s);
}
i=s%key;
printf("%d\n",i);
}
int change(int key)
{int i,j=0,s=0;
while(key!=0)
{i=key%2;
key=(int)(key/2);
s+=(i*pow(10,j));
j++;
}
return s;
}

#4
lusan1682007-11-17 16:18

如果要用数组的话,可以做出来吗?

#5
lhw848744292007-11-17 17:40
我来看看
#6
billtob2007-11-17 18:11
能教我一道题么!
#7
billtob2007-11-17 18:15

楼主,能教我做这道题么!用FOR循环!A
                  BBB
                 CCCCC
                DDDDDDD
               EEEEEEEEE
              FFFFFFFFFFF
             GGGGGGGGGGGGG
我只会用同一个字符做出来!

#8
billtob2007-11-17 18:16
那位朋友能帮我呀!
#9
影王子2007-11-17 18:28
等高手来
#10
billtob2007-11-17 18:42
老大们!帮帮忙呀!
#11
dydytd34002007-11-17 22:52
回复:(learnerboy)#include
要是程序在能精简一些就好了!
#12
江山如画2007-11-17 23:27
回复:(billtob)楼主,能教我做这道题么!用FOR循...
很容易的问题而已,其实就是对于你脑袋里有没ASCII表那个概念和FOR循环运用如何,代码如下:
#include "stdafx.h"
int main(int argc, char* argv[])
{
char gg=' ';
char bb='A';
int ss=65;int k=0,b=0;
for(int z=0;z<7;z++)
{
for(int i=0;i<6-z;i++)
{
printf("%c",gg);
}
for(int x=0;x<=z+b;x++)
{
printf("%c",ss);
}
printf("\n");
k=0;
k++;
b++;
ss=ss+k;
}
}
#13
dydytd34002007-11-17 23:35
回复:(billtob)楼主,能教我做这道题么!用FOR循...
以下是引用billtob在2007-11-17 18:15:44的发言:

楼主,能教我做这道题么!用FOR循环!A
                  BBB
                 CCCCC
                DDDDDDD
               EEEEEEEEE
              FFFFFFFFFFF
             GGGGGGGGGGGGG
我只会用同一个字符做出来!

楼上的用了3个for语句的嵌套,觉得有些麻烦,所以自己写了一个~
#inculde<stdio.h>
main()
{
int i,j,x=7,z=0;
char c='A',h='\t';
for(i=1,i<=7,i++)
{
for(j=1,j<=x,j++)
{
if(x-j<=z)
h=c;
printf("%c",h);
}
x++;
z+=2;
printf("\n");
c++;
}
}
这样就行了,不过还是觉得有些麻烦。

[此贴子已经被作者于2007-11-17 23:36:55编辑过]

#14
江山如画2007-11-17 23:48
回复:(dydytd3400)回复:(billtob)楼主,能教我做...
老兄,你去编译器里试下,就知道哪错了
#15
fanqie1432007-11-18 03:20
呵呵。
#16
dydytd34002007-11-18 17:39
回复:(江山如画)回复:(dydytd3400)回复:(bill...
刚开始我也怀疑'\t'是不是有错,因为我记得'\t'是水平制表符,输出就是空格,不知道是否正确,也不知道空格可以直接用' '输出,如果是这样的话,就谢谢了!
不过如果还有其他地方的错误请老兄指出,由于种种原因,暂时无法用编译器运行,所以还是谢谢……
#17
ygah2007-11-18 21:54
学习中~~~~~~~~~~~~
#18
Occing2007-11-18 22:05
回复:(billtob)楼主,能教我做这道题么!用FOR循...
main()
{
int m,k;
char s;
s='A';
for(m=1;m<=7;m++)
{
for(k=1;k<=7-m;k++)
printf(" ");
for(k=1;k<=2*m-1;k++)
printf("%c",s);
printf("\n");
s+=1;
}
}
#19
永吥娮弃2007-11-18 22:55
回复:(billtob)老大们!帮帮忙呀!

#include <stdio.h>
void main()
{
int i,j,k,a=65;

for(i=1;i<=8;i++)
{
for(j=1;j<=8-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("%c",a);
a++;
printf("\n");

}
}
这是我自己写的,你看看吧,我也是新手!!!

1