本文目录一览:
- 1、关于c语言实现的任意进制转换谁能给我解答一下?代码如下
- 2、c语言为什么输出是1100?
- 3、求c语言16进制转2进制的代码 要有注释不然看不懂 谢谢 救命
- 4、c语言求1到100阶乘代码
- 5、用C语言写出 1000到1100素数和。 谢谢
关于c语言实现的任意进制转换谁能给我解答一下?代码如下
#includestdio.h
int a[210],len;
void cal(int p, int q)
{
bool change = false;
int i, left;
for (i = left = 0; ilen; change |= a[i++])
{
left = (a[i] + left * p);
a[i] = left / q;
left%=q;
}
// 如何商不为0
if (change)cal(p, q);
// 输出余数
printf("%c",left+(left=10?55:'0'));
}
int main()
{
int p = 0, q = 0, t,i;
char s[1100];
//先输入t,表示循环次数
for (scanf("%d", t); t--; printf("\n"))
{
scanf("%s", s);
//输入格式为 p,a,q
for (p = i = 0; s[i] != ','; p = p*10 + s[i++]-'0');
//a数组是以十进制保存
for (i++, len = 0; s[i] != ','; i++, len++) a[len] = s[i]-(s[i]='A'?55:'0');
for (q = 0, i++; s[i] != '\0'; i++) q = q * 10 + s[i] - '0';
cal(p, q);
}
}
c语言为什么输出是1100?
if(a=1) b=1;
将1赋值给a, a=1返回 1,非0表示真,所以执行b=1
a=1,b=1,c=0,d=0
求c语言16进制转2进制的代码 要有注释不然看不懂 谢谢 救命
/*
十六进制的一个位 对应 二进制的四个位
二进制 十六进制
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 a
1011 b
1100 c
1101 d
1110 e
1111 f
比如十六进制的 7af = 0111 1010 1111
*/
#include cstdio
#include string
#include iostream
using namespace std;
typedef struct hex
{
string er_hex;
string sl_hex;
} Hex;
Hex flag[16] = {//十六进制与二进制 对应 初始化
{"0000","0"},{"0001","1"},{"0010","2"},{"0011","3"},
{"0100","4"},{"0101","5"},{"0110","6"},{"0111","7"},
{"1000","8"},{"1001","9"},{"1010","a"},{"1011","b"},
{"1100","c"},{"1101","d"},{"1110","e"},{"1111","f"}};
int main()
{
/*for (int i = 0; i 16; i++)
{
cout flag[i].er_hex " " flag[i].sl_hex endl;
}*/
string str;
cout "请输入一个十六进制数" endl;
cin str;
cout "十六进制数 " str "二进制为:";
for (int j = 0; j str.length(); j++)
{
for (int i = 0; i 16; i++)
{ //检查输入的十六进制的每一位 并翻译成相应的二进制
if(str[j] == flag[i].sl_hex[0])
cout flag[i].er_hex " ";
}
}
cout endl;
return 0;
}
//PS:输入的数一定要符合十六进制数要求 不然会出错
c语言求1到100阶乘代码
1到100?这数够大的了...
#includestdio.h
void main()
{
double j=1;
for(int i=1;i=50;i++)j*=i;
printf("1到100的阶乘是%.0f\n",j);
}
下面用函数的递归调用做:
#includestdio.h
double fact(int n)/*求阶乘的函数*/
{
double j;
if(n1)j=n*fact(n-1);/*递归调用,当n1时,一直会调用下去,只不过每次参数被减1*/
else
return 1;/*当n被减到1时,返回1,如是会被累积,当n初始为1时直接返回1*/
return j;/*j是当n1时,最后要的结果*/
}
void main()
{
printf("1到n的阶乘是%.0f\n",fact(5));
}
用C语言写出 1000到1100素数和。 谢谢
测试过了,完全正确,你看看吧
#includestdio.h
int fun(int m)
{
int i;
if(m2) return 0;
for(i=2;i=m/2;i++)
if(m%i==0) return 0;
return 1;
}
void main( )
{
int n=0,i;
for(i=1000;i=1100;i++)
if(fun(i))
n+=i;
printf("sum=%d\n",n);
getch();
}