当前位置:首页 » 编程语言 » c语言nr

c语言nr

发布时间: 2023-07-31 01:32:29

‘壹’ 求十进制转换二进制c语言代码

求十进制转换二进制C语言代码代码如下:

#include<stdio.h>

#defineNR(sizeof(int)*8)//二进制位的个数

voiddeciToBin(intnum);//十进制转换为二进制函数声明

/*主函数*/

intmain(void)

{

intnum;

fprintf(stdout,"请输入一个正整数:");

/*获取并检查用户输入*/

while(1)

{

if(fscanf(stdin,"%d",&num)!=1)

{

fprintf(stderr,"输入错误!请重新输入:");

while(getchar()!=' ');//去掉多余的非法字符

continue;

}

elseif(num<0)//输入的数不能为负数

{

fprintf(stderr,"请输入错误!请输入正整数:");

continue;

}

else

break;

}

fprintf(stdout,"对应二进制为:");

#if1/*方法一:不使用递归*/

charbitArr[NR];

inti=-1;

/*算法:栈的数学模型*/

do{

i+=1;

bitArr[i]=num%2;

num/=2;

}while(num!=0);

/*逆序打印*/

for(i;i>=0;i--)

{

fprintf(stdout,"%d",bitArr[i]);

}

fputc(' ',stdout);

#else/*方法二:使用递归*/

if(num==0)

{

fprintf(stdout,"0 ");

}

else

{

deciToBin(num);//调用第归函数

fputc(' ',stdout);

}

#endif

return0;

}

/*

*@函数名:deciToBin

*@函数功能:实现十进制转换为二进制

*@参数:需要转换的十进制整数

*/

voiddeciToBin(intnum)

{

/*第归结束条件*/

if(num==0)

{

return;

}

/*第归调用*/

deciToBin(num/2);

/*逆序打印*/

fprintf(stdout,"%d",num%2);

}

(1)c语言nr扩展阅读:

使用C语言编程实现任意进制数(2-16进制)转换为其他任意进制数(2-16进制)方法:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

intTenNum(chara[],intB);

voidNumchange(intm,intB);

intTenNum(chara[],intB)

{

intlen,i,num;

intsum=0;

len=strlen(a);

for(i=0;i<len;i++)

{

if(a[i]>='0'&&a[i]<='9')

num=a[i]-'0';

elseif(a[i]>='A'&&a[i]<='F')

num=a[i]-'A'+10;

sum=sum*B+num;

}

returnsum;

}

voidNumchange(intm,intB)

{

intn;

if(m)

{

Numchange(m/B,B);

n=m%B;

if(n<10)

printf("%d",n);

else

printf("%c",n+55);

}

}

intmain()

{

intB,b;

chara[20];

printf("请输入待转换数的进制(2-16):");

do{

scanf_s("%d",&B);

}while(B<2&&B>16);

printf("请输入待转换数:");

getchar();

gets_s(a);

intm=TenNum(a,B);

printf("请输入需要转成几进制数(2-16):");

do{

scanf_s("%d",&b);

}while(B<2&&B>16);

printf("%d进制数%s转换为%d进制数的结果为:",B,a,b);

Numchange(m,b);

printf(" ");

system("pause");

return0;

}

‘贰’ C语言如何动态分配二维数组

动态分配二维数组:

void main(int argc, char * argv[])

{

int NC=100, NR=200;

int i,j;

char **a; // a[NR][NC] -- *a[NR] -- a[j][i]

a = (char **) malloc(sizeof(char *) * NR);

for (j=0;j<NR;j++){

a[j] = (char *) malloc(sizeof(char) * NC);

}

// 释放空间: free(a);

编译错误是因为p[j]=(char *)malloc,而不是题目的(char *)malloc(n*sizeof(char))。

(2)c语言nr扩展阅读:

二维数组的动态分配

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。

‘叁’ 用C语言编写:输入半径R,求圆的周长、面积和球的体积。

#define PI 3.14

#include<stdio.h>

void main(void)

{ float r,l,s,v;

printf("please input r r=");

scanf("%f",&r);

l=2*PI*r;

s=PI*r*r;

v=4*PI*r*r/3;

printf("the result :");

printf(" l=%f s=%f v=%f",l,s,v);

getchar();

}

(3)c语言nr扩展阅读:

实例操作

// 设圆半径r = 1.5,圆柱高h = 3

// 要求:用scanf输入数据,取小数点后两位

#include <stdio.h>

int main()

{

float r,h;

float c,s,sq,vq,vz;

float pai = 3.1415926;

printf("请输入圆半径:");

scanf("%f",&r);

printf("请输入圆柱高:");

scanf("%f",&h);

c = 2 * pai * r;

s = pai * r * r;

sq = 4 * pai * r * r;

vq = ( 4 / 3 ) * pai * r * r * r;

vz = s * h;

printf("圆周长是:%4.2f ",c);

printf("圆面积是:%4.2f ",s);

printf("圆球表面积是:%4.2f ",sq);

printf("圆球体积是:%4.2f ",vq);

printf("圆柱体积是:%4.2f ",vz);

return 0;

}

‘肆’ C语言,语句 float **a 是什么意思

这是声明,声明 a 是变量,它 是指向 “浮点型 指针” 的 一个“指针”。
它不是二维数组。

要变2位数组,要做以下动态分配
int NC=5, NR=3; // 假定 5 列 3 行
int i,j;
float **a;
a = (float **) malloc(sizeof(float *) * NR);
for (j=0;j<NR;j++){
a[j] = (float *) malloc(sizeof(float) * NC);
}
接下来 可用 a[j][i] 了:
for (j=0;j<NR;j++)
for (i=0;i<NC;i++) {
a[j][i] = (j+1)*100.0 + i;
}
for (j=0;j<NR;j++){
for (i=0;i<NC;i++) printf("%g ",a[j][i]);
printf("\n");
}

热点内容
java等待 发布:2025-02-07 07:28:24 浏览:611
vs编译器会自己加空格吗 发布:2025-02-07 07:23:05 浏览:174
光遇切换账号安卓要输入些什么 发布:2025-02-07 07:10:20 浏览:501
多角线算法 发布:2025-02-07 07:08:56 浏览:273
有效提高ftp传输速度 发布:2025-02-07 07:06:47 浏览:703
寒灵之剑脚本 发布:2025-02-07 06:57:12 浏览:119
解压的窗口 发布:2025-02-07 06:44:34 浏览:798
android身份证 发布:2025-02-07 06:36:43 浏览:431
python的库在哪 发布:2025-02-07 06:30:24 浏览:349
带锁的铅笔如何改密码 发布:2025-02-07 06:18:05 浏览:165