C语言编程实现
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言编程实现相关的知识,希望对你有一定的参考价值。
编写一个程序,输入一个数后,可将该数进行二、五、八、十或十六进制转换,输入的数可以是二、五、八、十或十六进制数
参考技术A #include<stdio.h>#include<stdlib.h>
int
main()
int
a=0;
int
b=0;
long
result=0;
printf("请输入两个数整数a,b:");
scanf("%d%d",&a,&b);
result=a*a+b*b;
if(result>500)
printf("a2+b2>500,它的百位以上的值为:%d.",result/100);
else
printf("a2+b2的结果小于500,其值是:%d.",result);
return
0; 参考技术B 所有转换
一个函数实现
原来贴的有点问题
改了
#include<stdio.h>
#define size 64
void transform(int n1,char c[size],int n2)
int a[size]=0,j,i=0;
long int num=0;
if(n1>10)
while(c[i])
if(c[i]>='0'&&c[i]<='9')
num=num*n1+c[i++]-48;
else if(c[i]>='A'&&c[i]<='Z')
num=num*n1+c[i++]-55;
else if(c[i]>='a'&&c[i]<='z')
num=num*n1+c[i++]-87;
else
puts("error\n");
return;
i=0;
else
while(c[i])
if(c[i]<'0'||c[i]>'9')
puts("error\n");
return;
num=num*n1+c[i++]-'0';
i=0;
while(num!=0)
a[i++]=num%n2;
num/=n2;
printf("(%s)%d转换为:\n(",c,n1);
if(n2<10)
for(j=i-1;j>=0;j--)
printf("%d",a[j]);
printf(")%d\n",n2);
else
for(j=i-1;j>=0;j--)
if(a[i]>=10)
printf("%c",a[j]+55);
else
printf("%d",a[j]);
printf(")%d\n",n2);
main()
int n1,n2;
char c[size]=0;
do
puts("输入现在数的进制类型:\n");
scanf("%d",&n1);
puts("输入需要转换的数据:\n");
scanf("%s",c);
puts("输入目标数的进制类型:\n");
scanf("%d",&n2);
transform(n1,c,n2);
puts("输入y继续,按任意键退出:\n");
getchar();
while(getchar()=='y');
这个程序有错误提示
还有好可以实现16进制之内的任意进制数的相互转换
我真不想拿上来
如果不明白
留言
必回本回答被提问者采纳 参考技术C #include<stdio.h>
void fun2(int num)
int a[20],i=0;
while(num!=0)
if(num%2!=0)
a[i]=1;
else a[i]=0;
num/=2;
i++;
for(int j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
void fun5(int num)
int a[20],i=0;
while(num!=0)
if(num%5!=0)
a[i]=num%5;
else a[i]=0;
num/=5;
i++;
for(int j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
void fun8(int num)
int a[20],i=0;
while(num!=0)
if(num%8!=0)
a[i]=num%8;
else a[i]=0;
num/=8;
i++;
for(int j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
void fun16(int num)
int a[20],i=0;
while(num!=0)
if(num%16!=0)
a[i]=num%16;
else a[i]=0;
num/=16;
i++;
for(int j=i-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
void main()
int num,choice;
printf("input a number:\n");
scanf("%d",&num);
printf("1:十进制转换为2进制\n2:十进制转换为5进制\n3:十进制转换为8进制\n4:十进制转换为16进制\n5:退出\n");
scanf("%d",&choice);
do
switch(choice)
case 1:fun2(num);break;
case 2:fun5(num);break;
case 3:fun8(num);break;
case 4:fun16(num);break;
default:break;
printf("1:十进制转换为2进制\n2:十进制转换为5进制\n3:十进制转换为8进制\n4:十进制转换为16进制\n5:退出\n");
scanf("%d",&choice);
while(choice!=5);
C语言 一个字符串实现累加
showzifustr(80,80,"num",0,255); //显示字符串
这个函数里面的 "num” 是以字符串形式输入,输出的是num,我想让他成为一个变量X,可以实现自加。求高手指点,小弟菜鸟,多多赐教!
再者说你的num本身就是一串固定字符串..又不是变量,你想让他变成变量.这..不想打击你,这毫无竟义,因为不管你想处理什么,都可以在函数里面定义一个变量,当作他的替身都ok,进行计算再输出.而且关键是,你五个参数都是固定的,这怎么进行变值传值,那你输出的值必定是固定的喽?还是说你想在函数里面进加自加?这...不管怎么自加..条件都由你.这样的输出让不让他变成变量也无所谓了吧..
最后说你的num是字符(char)这样实现加还是有意义的,因为字符加,可以按ascll码加,其实也就是一个变量了,如果是这样, 这加法你就当普通加法做就好如, num 是字母 A ascll(int值) 为41, num+1 所得char类型为 B ascll码为 42如此而已,看你输出的结果类型是什么.若按字符串,也不过划分为字符加,然后进行合并处理而已.至少实现自加, 可以在函数里面加条件判断,如 if(num < 255)
若是的话就可以自调一次函数这样,showzifustr(80,80,num+1,0,255);,若不是的话,就输出呗
第三点,实现于num非字符串,也不是指针,而是char型的变量. 参考技术A 什么意思?
能不能说具体点,问的很模糊呀
你可以这样
char *str = "num";
showzifustr(80,80,str,0,255); 参考技术B showzifustr(int a,int b, char *num,int d,int e),然后在函数里操作num即可
以上是关于C语言编程实现的主要内容,如果未能解决你的问题,请参考以下文章