北理C语言作业及答案2(3)

2018-12-21 12:06

temp[2]=str[14];

temp[3]='\\0';

if(strcmp(temp,\=0) {

newstr[7]='8'; }

else newstr[7]='9';

//下面是校检码,0的ascii码值是

int Wi[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权重

int S=0;

for(i=0;i<17;i++) {

S=S+Wi[i]*((int)(newstr[i])-48); }

int y;

y=S;

switch(y) {

case 0:newstr[17]='1';break;

case 1:newstr[17]='0';break;

case 2:newstr[17]='X';break;

case 3:newstr[17]='9';break;

case 10:newstr[17]='2';break;

default:

newstr[17]=(char)(12-y+48);break; }

newstr[18]='\\0';

strcpy(str,newstr); }

int IscheckedValid(char str[]) {

int n=strlen(str);//n=18

int num[17];//保存前位

int i;

for(i=0;i<17;i++)//保存前位

num[i]=(int)str[i]-48;

//下面是校检码,0的ascii码值是

int Wi[17]={7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};//权重

int S=0;

for(i=0;i<17;i++) {

S=S+Wi[i]*num[i];

}

int y;

y=S;

char lastnum;

switch(y) {

case 0:lastnum='1';break;

case 1:lastnum='0';break; case 2:lastnum='X';break;

case 3:lastnum='9';break;

case 10:lastnum='2';break;

default:

lastnum=(char)(12-y+48);break; }

if(lastnum==str[17])

return 1;

else

return 0;//0表示不合法 }

void run(char str[]) {

int n=strlen(str);

if(n==15) {

shengji(str);

printf(\ }

else if(n==18) {

if(!IscheckedValid(str))

printf(\

else printf(\ }

else printf(\ }

void main() {

int n;

scanf(\

char str[25];

for(int i=0;i

gets(str);

run(str); } }

36 科学记数法

成绩: 10 / 折扣: 0.8

对于非常大或者非常小的数据,我们通常用科学记数法来表示。例如在科技文献和电脑中经常遇到的 2.3×106 (计算机中的科学记数法表示为:2.3E6),或者 9.18×10-5 (科学记树法表示:9.18E-5)这种类型的数据。

输入:

用科学记数法表示的数据。即为符合C语言表示的科学记数法表示。 输出:

该数据的双精度表示

说明:

输入数据的精度不高于小数点后50位。

输入数据时,在实数和幂之间有空格进行分隔,空格个数不定。

结果保留到小数点后8位,如不足8位用0补足,超过8位则截断,不进行四舍五入的处理。

时额内间外存限进限制程制 测试以文本方式显示 用例1. 1.2345 E 3? 1 测以文本方式显示 试以文本方式显示 1. 1234.50000000? 测试输入 期待的输出 1640 秒M 以文本方式显示 1640 秒M


北理C语言作业及答案2(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高中化学二轮复习高考压轴大题特训题型六物质结构与性质

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: