C语言程序设计 第六章

expr 2.1

#include<stdlib.h>
#include<stdio.h>
int main(){int i,n;scanf("%d",&n);for(i = 2; i<=n;i++){while(n!=0){if(n%i==0){printf("%d*",i);n /= i;}else{break;}}}putchar('\b');return 0;
}

在这个代码之中,因为有for循环对于i变量进行着范围的约束,所以说只要是n!=0就可以了,可以不用考虑最后n=1,i一直累加进入死循环的情况。(可以与实验六之中的my_fun()函数进行比较)

因为在实验六之中,质因数的分解是在同一个while循环中完成的,所以说只用了一层的循环。而且并没有对i进行范围的限制,所以导致如果在“1”的情况之下不break会出现死循环。

void fun(int m){int i = 2;printf("%d = 1",m);while(m>1){          //在这里对1进行约束,防止出现1一直除不尽,所以一直i++的情况。if(m%i==0){m/=i;printf("*%d",i);}else i++; }
}

expr 2.2

#include<stdio.h>
#include<stdlib.h>
int datoi(char str[]){int value = 0, i = 0;while(str[i]!='\0'){value = value*10 + str[i] - '0';i++;}return value;
}
int main(){char *str = "9999";printf("%d",datoi(str)*10+9);return 0;
}

注意,在做这个实验的时候不可以

#include<stdlib.h>

因为atoi这个函数在stdlib.h这个库之中已经存在了,相当于是对于这个函数进行复写,所以会导致报错。

expr 2.3

#include<stdio.h>
void maxval(int (*num)[4]){int i, j, max, row =0, col = 0;max = num[0][0];for(i=0; i<4; i++)for(j=0; j<4;j++)if(max<num[i][j]){max = num[i][j];row = i;col = j;}printf("the maxium value lies in %d row, %d column, equals to %d",row, col, max);
}
int main(){int num[4][4]= {1,2,3,4,4,3,2,1,9,8,7,6,6,7,8,9};maxval(num);return 0;
}

expr 2.9

注意插入排序!!

#include<stdio.h>
#include <stdlib.h>
void insert(float* num,float new){int i = 11;num[12] = new;while( i>=0 && num[i]<num[i+1]){   //这个是针对题目之中所给的条件“递减数列”得来的。new = num[i+1];num[i+1] = num[i];num[i] = new;i--;}
}
int main(){float *num = (float*)malloc(sizeof(float)*13);for(int i=0;i<12;i++)   num[i] = -i*i;float new;scanf("%f",&new);insert(num,new);for(int i=0;i<13;i++)   printf("%f\t",num[i]);return 0;
}

expr 2.10

#include<stdio.h>
#include <stdlib.h>
int mycmp(char *p1, char* p2){while(*p1 && *p2 && *p1 == *p2){p1++, p2++;}return *p1 - *p2;
}
int main(){char *p1, *p2;p1 = (char*)malloc(sizeof(char)*20);p2 = (char*)malloc(sizeof(char)*20);gets(p1);gets(p2);printf("%d",mycmp(p1,p2));return 0;
}

Equivalent Solution:

int mycmp(char *p1, char* p2){while(*p1 && *p2 && *p1++ == *p2++);return *(--p1) - *(--p2);
}

expr 3.3

#include<stdio.h>
#include <stdlib.h>
void ss(char*s, char t){while(*s){if(*s==t)*s = t -'a' +'A';s++;}}
void main(void){char str1[100] = "abcddfefdbd", c = 'd';ss(str1,c);puts(str1);
}

The code in Line 6 search for a particular character that is equal to the input char t, and return a Capitalized character in the string.

expr 3.6

#include<stdio.h>
#include <stdlib.h>
void sort(int a[], int n){int i,j,t;for(i = 0; i<n-1; i++)for(j = i+1; j<n; j++)if(a[i]<a[j]){t = a[i];a[i] = a[j];a[j] = t;}
}
void main(void){int aa[10] = {1,2,3,4,5,6,7,8,9,10},i;sort(&aa[3],5);for(i =0; i<10; i++){printf("%d\t",aa[i]);}
}

上述的代码的核心原理是,以输入的int型指针a为起点,以a+n-1指针为终点,进行降序的排序。

从a[3]开始,长度为5的子列进行一个降序的排序。

expr 3.7

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void sort(char **str, int n){char * tmp;int i, j;for(i=0; i<n-1; i++)for(j=0; j<n-i-1;j++)if(strcmp(str[j],str[j+1])>0){tmp = str[j], str[j] = str[j+1], str[j+1] = tmp;}
}
int main(){char **ps, *str[3] ={"BOOK", "COMPUTER", "CHINA"};int i;ps = str;sort(str,3);for(i=0;i<3;i++)puts(str[i]);return 0;
}

expr 5.2

#include<stdio.h>
#include<stdlib.h>
int prime(int x){int flag = x;for(int i = 2;i<x;i++)if(x%i ==0){flag = 0;break;}return flag;
}
int main(){int n,sum=0;scanf("%d",&n);for(int i=2; i<=n; i++)sum+=prime(i);printf("%d",sum);return 0;
}

expr 5.10

#include<stdio.h>
#include<stdlib.h>
int sort(short *num, int n){int p;short temp;for(int i=0;i<n-1;i++){int p = i;for(int j = i+1;j<n;j++)if(num[p]<num[j])p = j;if(p!=i)temp = num[p],num[p] = num[i], num[i] = temp;}return 0;
}
int main(){short* num = (short*)malloc(sizeof(short)*30);for(int i=0;i<20;i++) num[i]= (rand()%1000)/7; sort(num,20);for(int i=0;i<20;i++)printf("%d\t",num[i]);return 0;
}

21Winter\ C语言程序设计第六章相关推荐

  1. c语言中 if(week == 6,C语言程序设计(第六章).pptx

    C语言程序设计(第六章)课案 第6章 用户定制数据类型及位运算;6.1 结构;6.1.1 概述;1.定义一个结构的一般形式为: struct 结构类型名 { 成员表 }; 成员表由若干个成员组成,每个 ...

  2. c语言作业题五六章答案,C语言程序设计五六章习题和课堂测试答案.doc

    C语言程序设计五六章习题和课堂测试答案 C语言程序设计第四五六章习题和课堂测试答案,还有期末C语言复习例题//3--1矩形面积 #includevoid main(){float a,b;float ...

  3. C语言程序设计第六章例题(数组)

    C语言程序设计第六章例题 例6.1 对十个元素依次赋值0,1,2,3,4,5,6,7,8,9,要求按逆序输出 例6.2 用数组来处理斐波那契数列 例6.3 有十个地区的面积,要求按从小到大输出 例6. ...

  4. java语言程序设计第六章答案_Java语言程序设计(邵丽萍编著)第六章.doc

    Java语言程序设计(邵丽萍编著)第六章 第6章 (一)判断题 (1)抽象类不能实例化. ( ) (2)一个类中,只能拥有一个构造方法. ( ) (3)内部类都是非静态的. ( ) (4)接口中的所有 ...

  5. java语言程序设计第六章答案_Java语言程序设计(一)课后习题第六章(附答案)

    六.重载与多态 1.判断:接口中的所有方法都没有被实现.() 2.方法重载是指 ( ) A.两个或两个以上的方法取相同的方法名,但形参的个数或类型不同 B.两个以上的方法取相同的名字和具有相同的参数个 ...

  6. c语言利用循环结构解决密码转换,C语言课件第六章循环结构.ppt

    C语言课件第六章循环结构 第6章 循环结构程序设计 6.1循环结构的组成 循环结构:描述有规律的重复操作问题. 组成:要重复执行的操作,重复执行所需的条件. 例6.1:求10! . 分析:计算1*2* ...

  7. c语言程序计算p q真值表,C语言程序设计第2章数据类型﹒运算符和表达式.ppt

    C语言程序设计第2章数据类型﹒运算符和表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...

  8. 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt

    C语言程序设计第2章数据类型.运算符与表达式 教学目标 掌握C语言标识符的组成 理解C语言的基本数据类型 掌握变量定义的方法 掌握常用的运算符的使用 掌握混合运算的数据转换方法 2.1 C语言的数据类 ...

  9. c语言程序设计第2章,C语言程序设计第2章 结构化程序设计与算法.ppt

    C语言程序设计第2章 结构化程序设计与算法.ppt 现在人们公认的具有"良好风格"的程序设计方法之一是所谓的"结构化程序设计方法".其核心是规定了算法的三种基本 ...

最新文章

  1. 正确使用STL-MAP中Erase函数
  2. 驳“中国的网页设计为什么这么烂?”
  3. 中间件(5)负载均衡
  4. 解决windows找不到D:launcher\launcher.exe的方法
  5. 使用window自带的截图工具
  6. 单例模式几种不同实现方式?
  7. android 通过短信找回密码,如何通过强力安卓恢复精灵找回丢失的手机短信?
  8. 无线网络安全认证[AD+Radius+CA]配置
  9. 微信对话生成器V4.4绿色版,自定义生成微信聊天截图软件(资源供学习参考)
  10. 系统架构设计师考试学习目录
  11. Harris角点检测 及 Matlab实验
  12. html5快捷键自动对齐,【答疑】pr自动对齐的快捷键是什么 - 视频教程线上学
  13. 浪潮之巅--摩托罗拉
  14. CSS(Cascading Style Sheets)
  15. 随机画五十个圆python_随的解释|随的意思|汉典“随”字的基本解释
  16. 一只兔子每三个月生兔子JAVA,兔子生兔子问题
  17. int / int(double); java保留小数
  18. 正在找工作的同学看过来,zozo最新的java面试题总会,学会月薪3万起!!!
  19. 神经网络每次输出不一样,神经网络输出值相同
  20. Vue实现web网页锁屏功能

热门文章

  1. Flare-On Challenge4 Writeup
  2. (附源码)计算机毕业设计ssm服装销售商城系统
  3. 学习表——受任于败军之际,奉命于危难之间(12.5-12.11)
  4. linux ubuntu系统忘记root密码的解决办法
  5. 用C语言VC2010实现数字雨
  6. 实验8 缓冲区溢出攻击实验
  7. 匠心开岁月·车库创乾坤 —— 微软创新节暨中国创新车库开幕
  8. 【论文阅读】DPLVO: Direct Point-Line Monocular Visual Odometry
  9. python--破解滑动验证码
  10. Charles系列破解激活License