练习题目5

1>实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9乘9乘法口诀表,输入12,输出12乘12乘法口诀表
思路:使用双层for循环,外层控制行,内层控制每一行中的多个表达式.内层循环每跑一次进行换行操作,这样就会输出下三角样式的乘法表.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void form(int num){
 int i = 1;
 int j = 1;
 for (i = 1; i < num + 1; ++i){
  for (j = 1; j < i + 1; ++j){
   printf("%d*%d=%-3d", j, i, i*j);
   
  }
   printf("\n");
 }
}
int main(void){
 int num = 0;
 scanf("%d", &num);
 form(num);
 system("pause");
 return 0;
}

在这里插入图片描述
2>使用函数实现连个数的交换
思路:应该使用其地址进行交换.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
 void exchange(int* a, int* b){
  int temp = 0;
  temp = *a;
  *a = *b;
  *b = temp;
 }
 int main(void){
 int num1 = 0,num2 = 0;
 scanf("%d %d", &num1, &num2);
 exchange(&num1, &num2);
 printf("%d %d\n",num1, num2);
 system("pause");
 return 0;
}

在这里插入图片描述
3>实现一个函数判断year是不是闰年
思路:如果是整数年,可以被400整除即为闰年.非整数年可以被4整除但不能被100整除即为闰年.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
//判断输入的年份是不是闰年,是闰年返回1,不是闰年返回0.
int judge(int year){
 int ret = 0;
 if (year%100==0){
  if (year % 4 == 0){
   ret = 1;
  }
 }
 else if (year % 4 == 0){
  ret = 1;
 }
 else{
  ret = 0;
 }
 return ret;
}
int main(void){
 int year = 0;
 scanf("%d", &year);
 int result = judge(year);
 printf("%d\n", result);
 system("pause");
 return 0;
}

在这里插入图片描述
在这里插入图片描述
4>创建一个数组,
实现函数init()初始化数组
实现empty()清空数组
实现reverse()函数完成数组元素的逆置
要求:自己设计函数的参数,返回值
思路:使用for循环对数组进行操作.
代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void exchange(int* a, int* b){
   int temp = 0;
   temp = *a;
   *a = *b;
   *b = temp;
  }
void init(int a[],int size){
 int i = 0;
 for (i = 0; i < size; ++i){
  a[i] = i;
 }
 for (i = 0; i < size; ++i){
  printf("%d ",a[i]);
 }
 printf("\n");
}
void empty(int a[],int size){
 int i = 0;
 for (i = 0; i < size; ++i){
  a[i] = 0;
 }
 for (i = 0; i < size; ++i){
  printf("%d ", a[i]);
 }
 printf("\n");
}
void reverse(int a[],int size){
 int i = 0;
 int j = size - 1;
 for (i = 0; i < size/2; ++i,--j){
  exchange(&a[i], &a[j]);
 }
 for (i = 0; i < size; ++i){
  printf("%d ", a[i]);
 }
 printf("\n");
}
int main(void){
 int arr[10] = {1};
 int size = sizeof(arr) / sizeof(arr[0]);
 init(arr, size);
 //empty(arr, size);
 reverse(arr, size);
 system("pause");
 return 0;
}

数组初始化:
在这里插入图片描述
数组初始化以及清空数组:
在这里插入图片描述
数组初始化以及逆置:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44779696/article/details/88820720