31、读懂以下程序,说明程序的功能
#include<stdio.h>
int main()
{
int m,n,r,m1,m2;
printf("请输入2个正整数:");
scanf("%d%d",&m1,&m2);
m=m1;
n=m2;
do{
r=m%n;
m=n;
n=r;
}while(r!=0);
printf("%d\n",m);
return 0;
}

//31、读懂以下程序,说明程序的功能
#include<stdio.h>
int main()
{
int m,n,r,m1,m2;
printf("请输入2个正整数:");
scanf("%d%d",&m1,&m2);
m=m1;
n=m2;
do{
r=m%n;
m=n;
n=r;
}while(r!=);
printf("%d\n",m);
return ;
}

32、一个数如果恰好等于它的所有的因子之和,则这个数就称为“完数”。例如6的因子有1、2、3,而1+2+3=6,因此6是一个完数。编程找出1000内所有的完数。


  #if 0
  32、一个数如果恰好等于它的所有的因子之和,则这个数就称为“完数”。例如6的因子有1、2、3,而1+2+3=6,因此6是一个完数。
  编程找出1000内所有的完数。

  思路分级:
  一。遍历2-1000内的所有数。
  二。寻找每个数所有的公约数累加等于本身则为完数。
  #endif

 #include<stdio.h>
int main(){ int num=;
for(num=;num<;num++){
int sum=;
int i=;
for(i=;i<=num/;i++){
if(num%i==){ sum+=i;
}
}
if(num==sum){
printf("%d:是一个完数\n",sum);
}
} return ;
}

33、(课堂)思考这个宏定义错在哪里
#define S (r) PI*r*r//注意S与(r)之间有空格

34、我们在头文件(.h文件)中,经常看到这样的内容
#ifndef __H_INCLUDE__
#define __H_INCLUDE__
//头文件的实际内容
#endif
思考头文件的开头和结尾需要这样书写的原因。

35、(课堂)运行以下程序
int main()
{
char a,b;
a = getchar();
b = getchar();
putchar(a);
putchar(b);
return 0;
}
运行程序,输入x回车y回车,会发现输出的并不是xy,而是
x

思考这是为什么。

36、(课堂)使用数组存储斐波那契数列前40项,并输出


  #if 0
  36、(课堂)使用数组存储斐波那契数列前40项,并输出

  解题思路:
  一。创建一个长度为40的数组。
  二。将第一第二个元素置为1;
  三。遍历数组 第N个元素的值为 元素(N-1)+元素(N-2);
  #endif

 #include<stdio.h>
#include<stdlib.h>
int *fibonacci(int len){
int *p;
int i; if(NULL==(p=(int *)malloc(sizeof(int)*len))){
perror("cannot malloc");
return NULL;
}
p[]=;
p[]=;
for(i=;i<len;i++){
p[i]=p[i-]+p[i-]; }
return p;
}
void print(int p[],int len){
int i;
for(i=;i<len;i++){
printf("p[%d]=%d\t",i+,p[i]); } } int main(){
int *fib;
fib=fibonacci(); print(fib,); return ;
}

37、(课堂)从键盘输入10个学生的成绩,如果遇到大于100或者小于0的成绩需要提示输入错误重新输入。之后计算10个学生的总成绩和平均成绩

  #if 0
  37、(课堂)从键盘输入10个学生的成绩,如果遇到大于100或者小于0的成绩需要提示输入错误重新输入。
  之后计算10个学生的总成绩和平均成绩

  解题思路:
  一。创建长度为十的数组表示学生成绩
  二。在输入时判断数值是否合法。
  三。遍历数组累加 求总成绩和平均成绩
  #endif

 #include<stdio.h>
#include<stdlib.h> int *getmemory(int len){
int *p;
if(NULL==(p=(int *)malloc(sizeof(int)*len))){
perror("cannot malloc");
return NULL; }
return p;
} void my_scanf(int p[],int len){
int i; for(i=;i<len;i++){
printf("请输入第%d个学生成绩:\n",i+);
//scanf("%d",&p[i]);
int grade=;
scanf("%d",&grade);
if(grade<||grade>){
printf("成绩区间为1至100");
i--;
}else{
p[i]=grade;
}
} } void my_printf(int p[],int len){
int i; for(i=;i<len;i++){ printf("第 %d个学生的成绩;%d",i+,p[i]);
} } int my_sum(int p[],int len){
int i=;
int sum=; for(i=;i<len;i++){
sum+=p[i]; }
return sum; } double my_ave(int p[],int len){
double ave; ave=my_sum(p,len)/len; return ave; } int main(){
int num;
int *stu; printf("需要输入几个学生的成绩");
scanf("%d",&num);
stu=getmemory(num);//创建容器 my_scanf(stu,num);//输入数据 //my_printf(stu,num);//输出数据 int sum=my_sum(stu,num);//求和
printf("学生的总成绩:%d",sum); double ave=my_ave(stu,num);//求平均
printf("学生的平均成绩:%lf",ave); return ;
}

38、(课堂)冒泡排序
从键盘输入10个各不相同的整数,存储在数组中,使用冒泡排序法将数组排序并输出
冒泡排序:是一种简单的排序算法
1)比较相邻的元素和其身后的元素。如果第一个比第二个大,就交换他们两个。
2)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。一次循环过后,最后的元素应该会是最大的数。
3)针对所有的元素重复以上的步骤,除了最后一个。
4)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

 #if 0
、(课堂)冒泡排序
从键盘输入10个各不相同的整数,存储在数组中,使用冒泡排序法将数组排序并输出
冒泡排序:是一种简单的排序算法
)比较相邻的元素和其身后的元素。如果第一个比第二个大,就交换他们两个。
)对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。一次循环过后,最后的元素应该会是最大的数。
)针对所有的元素重复以上的步骤,除了最后一个。
)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。 #endif
#include<stdio.h> void my_scanf(int a[],int len){
int i=;
for(i=;i<len;i++){ printf("请输入第 %d个元素",i+);
scanf("%d",&a[i]); } }
void bubblesort(int a[],int len){
int i,j;
for(i=;i<len-;i++){ for(j=;j<len--i;j++){
if(a[j]<a[j+]){
a[j]^=a[j+];
a[j+]^=a[j];
a[j]^=a[j+]; } }
} } void my_printf(int a[],int len){
int i=;
for(i=;i<len;i++){
printf("a[%d]=%d\n",i+,a[i]); } }
int main(){
int a[]={};
my_scanf(a,); bubblesort(a,); my_printf(a,); return ;
}

39、(课堂)自定义一个3*4的矩阵,输出矩阵中值最大的元素,并输入其数组下标


  #if 0
  39、(课堂)自定义一个3*4的矩阵,输出矩阵中值最大的元素,并输入其数组下标
  解题思路:
  一。构建一个3*4的矩阵,然后给矩阵内的每个元素赋值。
  二。创建三个变量分别存放最大值及其坐标
  三。遍历矩阵得到最大值及其坐标

  错误分析:
  应该定义一个结构体来存放最大值及其坐标
  #endif

 #include<stdio.h>
#include<stdlib.h> void my_scanf(int (*a),int x,int y){
int i=,j=;
for(i=;i<x;i++){
for(j=;j<y;j++){
printf("请输入第 %d行%d 列的值:\n",i+,j+);
scanf("%d",&a[(i*(x+)+j)]); } } for(i=;i<x;i++){
for(j=;j<y;j++){
printf("a[%d][%d]=%d\t",i+,j+,a[(i*(x+)+j)]);
//printf("%d\n",(i*(x+1)+j)); } } } void max(int (*a),int x,int y){
int num,i=,j=,sub_i=,sub_j=;
num=a[];
for(i=;i<x;i++){
for(j=;j<y;j++){
if(num<a[(i*(x+)+j)]){
num=a[(i*(x+)+j)];
sub_i=i+;
sub_j=j+; } } } printf("\nmax:a[%d][%d]=%d",sub_i,sub_j,num); } int main(){
//printf("哈哈哈999\n");
int a[][]={};
//int (*a)=(int *)malloc(sizeof(int)*3*4); //int i=3,j=4;
my_scanf(a,,); max(a,,); //free(a);
//a=NULL; return ;
}

最新文章

  1. 让Entity Framework启动不再效验__MigrationHistory表
  2. Android Bundle
  3. Java—接口与抽象类
  4. 设计模式_Composite_合成模式
  5. 再说CSS3渐变——线性渐变
  6. 【maven学习笔记】 01 初见
  7. ibatis缓存配置
  8. Hadoop大数据零基础高端实战培训系列配文本挖掘项目
  9. html5css3杂记
  10. Deep learning:一(基础知识_1)
  11. 【续】抓个Firefox的小辫子,jQuery表示不背这黑锅,Chrome,Edge,IE8-11继续围观中
  12. [Codeforces]871D Paths
  13. 集群通信组件tribes之集群的消息接收通道
  14. Git—学习笔记1
  15. ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛 i题 Minimum(线段树)
  16. WebStorm中配置node.js(Windows)
  17. 测试HANA的真实案例
  18. 56_实现类似spring的可配置的AOP框架
  19. 第11章 GPIO输出—使用固件库点亮LED
  20. Python 不定参数函数

热门文章

  1. 微信小程序运行机制
  2. Swoole 协程 MySQL 客户端与异步回调 MySQL 客户端的对比
  3. 从网络架构方面简析循环神经网络RNN
  4. npm ERR! Cannot read property &#39;match&#39; of undefined 错误处理
  5. 【转】mysql日期格式+日期增加天数
  6. MCP|BFY|Proteome Analysis of Human Neutrophil Granulocytes From Patients With Monogenic Disease Using Data-independent Acquisition(单基因疾病患者中性粒细胞的DIA蛋白质组分析)
  7. 30岁程序员的焦虑 Anxiety of 30-year-old Programmers
  8. JAVA接口详细讲解
  9. centos6上安装CDH5.7
  10. 洛谷P2136 拉近距离