C语言程序设计 - 谭浩强 - 第三版 - 课后习题答案(8)

2019-03-11 15:15

}

return(x/n1-(y/n1)*(y/n1)); } 8-15

#include #define N 3 void main() {

void input(int num[],char name[N][8]); void sort(int num[],char name[N][8]);

void search(int num[],char name[N][8],int n); int flag,n,num[N]; char c,name[N][8]; input(num,name); sort(num,name);

for(flag=1;flag;) {

printf(\输入要查找的职工号\\n\\n\ scanf(\

search(num,name,n);

printf(\是否继续查找?Y/N ?\\n\\n\ c=getchar();

if(c=='N'||c=='n') flag=0; } }

void input(int num[],char name[N][8]) { int i;

for(i=0;i

printf(\输入职工号\\n\\n\ scanf(\

printf(\输入职工姓名\\n\\n\ getchar(); gets(name[i]); } }

void sort(int num[],char name[N][8]) {

int i,j,min,temp1; char temp2[8]; for(i=0;i

{

min=i;

for(j=i;j

if(num[min]>num[j]) min=j; }

temp1=num[i];

strcpy(temp2,name[i]); num[i]=num[min];

strcpy(name[i],name[min]); num[min]=temp1;

strcpy(name[min],temp2); }

printf(\排序结果如下:\\n\\n\ for(i=0;i

printf(\职工号:m 姓名:s\\n\\n\ } }

void search(int num[],char name[N][8],int n) {

int low,high,mid,flag; flag=0; low=0; high=N-1;

if((nnum[high])) flag=-1; while((low<=high)&&(flag==0)) {

mid=(low+high)/2; if(n==num[mid]) {

flag=mid+1;

printf(\第M号职工的名字为:%8s\\n\\n\ break; }

else if(n

if(flag==0||flag==-1) printf(\不存在该职工\\n\\n\} 8-16

#include

#define N1 1000 void main() {

int exchange(char a[]); int i=0,flag=0,flag1=1; char c,a[N1];

printf(\输入一个十六进制数\\n\\n\

while(((c=getchar())!='\\0')&&(i

if(((c>='0')&&(c<='9'))||((c>='a')&&(c<='f'))||((c>='A')&&(c<='F'))) {

a[i++]=c; flag=1; }

else if(flag==1) {

a[i]='\\0';

printf(\对应的十进制数为:%d\\n\\n\ printf(\是否继续?Y/N ?\\n\\n\ c=getchar();

if(c=='N'||c=='n') flag1=0; else {

flag=0; i=0;

printf(\输入一个十六进制数\\n\\n\ } } } }

int exchange(char a[]) {

int i,n=0;

for(i=0;a[i]!='\\0';i++) {

if((a[i]>='0')&&(a[i]<='9')) n=n*16+a[i]-'0'; if((a[i]>='a')&&(a[i]<='f')) n=n*16+a[i]-'a'+10; if((a[i]>='A')&&(a[i]<='F')) n=n*16+a[i]-'A'+10; }

return(n); } 8-17

#include

void main() {

void exchange(int n); int n;

printf(\输入一个整数\\n\\n\ scanf(\

printf(\输出是:\\n\\n\ if(n<0) {

putchar('-'); n=-n; }

exchange(n); printf(\}

void exchange(int n) { int i;

if((i=n/10)!=0) exchange(i); putchar(n+'0'); } 8-18

#include void main() {

int day_num(int year,int mon,int day); int year,mon,day;

printf(\输入年、月、日\\n\\n\

scanf(\

printf(\输入的日期是当年的第%d天\\n\\n\}

int date[]={31,28,31,30,31,30,31,31,30,31,30,31}; int day_num(int year,int mon,int day) {

int i,days=0;

for(i=0;i

days+=date[i]; }

days+=day;

if((year%4==0)&&((year0)!=0)||(year@0==0)) days+=1; return days; }

第九章 9-1

#include

#define exchange(x,y) t=x;x=y;y=t void main() {

int x,y,t;

printf(\输入x,y\\n\\n\ scanf(\ exchange(x,y);

printf(\交换后x=%d,y=%d\\n\\n\} 9-2

#include #define acr(x,y) ((x)%(y)) void main() {

int x,y;

printf(\输入x,y\\n\\n\ scanf(\

printf(\余数为%d\\n\\n\} 9-3

#include #include

#define s(a,b,c) ((a+b+c)/2)

#define area(a,b,c,s) sqrt(s*(s-a)*(s-b)*(s-c)) void main() {

float a,b,c,s,area; char m; int flag=1; while(flag==1) {

printf(\输入a,b,c\\n\\n\ scanf(\

if(a>0&&b>0&&c>0&&(a+b>c||a+c>b||b+c>a)&&(fabs(a-b) s=s(a,b,c);

area=area(a,b,c,s);


C语言程序设计 - 谭浩强 - 第三版 - 课后习题答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015年注册咨询工程师《工程项目组织与管理》真题

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

马上注册会员

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