level 2
蛋定神话
楼主
编写函数void fun(char s[],char s1[]),函数实现功能:将八进制数字字符串s转换成二进制字符串s1,比如:字符串s为32513,则转换后的字符串s1为011010101001011。另编写主函数void main(),主函数中输入八进制数字组成的字符串,并调用函数fun进行转换,输出转换后后二进制数字字符串。(提示:八进制字符要转换成对应的三位二进制字符,转换方法:char ss[8][4]={"001","010","011","100","101","110","111"},定义这样一个字符串数组,该数组的下标(即第一维的下标)对应的数即是该二进制字符串对应的八进制数,利用该技巧。)
本人代码如下:
#include <stdio.h>
void fun(char s[],char s1[])
{
int i,j,k,a;
k=0;
char ss[80][80];
for(i=0;s[i]!='\0';i++)
{
a=s[i]-'0';
ss[i][0]=a/4+'0';
ss[i][1]=(a%4)/2+'0';
ss[i][2]=(a%4)%2+'0';
ss[i][3]='\0';
}
for(i=0;s[i]!='\0';i++)
{
for(j=0;i<3;j++)
{
s1[k++]=ss[i][j];
}
}
}
void main()
{
char s[80],s1[80];
printf("Input string:");
gets(s);
fun(s,s1);
puts(s1);
}
哪里出了问题 导致运行结果都没有 跪求解答 谢谢各位!
2016年02月11日 13点02分
1
本人代码如下:
#include <stdio.h>
void fun(char s[],char s1[])
{
int i,j,k,a;
k=0;
char ss[80][80];
for(i=0;s[i]!='\0';i++)
{
a=s[i]-'0';
ss[i][0]=a/4+'0';
ss[i][1]=(a%4)/2+'0';
ss[i][2]=(a%4)%2+'0';
ss[i][3]='\0';
}
for(i=0;s[i]!='\0';i++)
{
for(j=0;i<3;j++)
{
s1[k++]=ss[i][j];
}
}
}
void main()
{
char s[80],s1[80];
printf("Input string:");
gets(s);
fun(s,s1);
puts(s1);
}
哪里出了问题 导致运行结果都没有 跪求解答 谢谢各位!