C 编程题目4
编写一个程序,要求用户输入一个十进制数,然后分别转换成为二进制数、八进制数和十六进制数输出。
//没有运行,自己运行一下 #include #include void fun(int a,char *s1,int n) { int pos=0; while(a!=0) { if (a%n>=10) s1[pos]=a%n-10+'A';//10用A表示,11用B。
。。
else s1[pos]=a%n-1+'1'; a=a/n; pos++; } s1[pos]='\0'; } int main() { int n,i; char s; scanf("%d",&n); fun(n,s,2); for (i=strlen(s)-1;i>=0;i--) printf("%c",s[i]); printf("\n"); fun(n,s,8); for (i=strlen(s)-1;i>=0;i--) printf("%c",s[i]); printf("\n"); fun(n,s,16); for (i=strlen(s)-1;i>=0;i--) printf("%c",s[i]); printf("\n"); }。
十进制转换成其它进制都是采用除留取余的方法 我也写一些主要的。 int s[80]; int a=145,i=0; while(a>=0) { s[i++]=a%2;/*如果是8进制就将此循环中的2改为8即可*/ a=a/2; } while(i>=0)/*逆序输出*/ { printf("%d",s[i--]); } 如果是16进制的话注意把大于10的数字改成相应的英文字母。
答:#include<stdio.h>#define LENGTH 100#define NUMBER 8int scan() { int data; ...详情>>
问:挺简单的一C函数,不过我是初学者,暂时还不会写,请好心人多多帮忙!
答:int mystrlen(char *str) { int n = 0; while (*str) { n++; str++;} return n; } voi...详情>>