回顾一些小函数

来源:互联网 发布:乐宝是什么软件 编辑:程序博客网 时间:2024/05/01 16:24

1.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,

输入9,输出9*9口诀表,输出12,输出12*12的乘法口诀表。 

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

2.使用函数实现两个数的交换。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>void swap(int *pa, int *pb){int tmp = *pa;*pa = *pb;*pb = tmp;}int main(){int a = 0, b = 0;scanf("%d%d", &a, &b);swap(&a, &b);printf("a=%d b=%d\n", a, b);system("pause");return 0;}

3.实现一个函数判断year是不是润年。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int is_leap(int year){if ((year % 400 == 0) || ((year % 4 == 0) && (year % 100) != 0)){return 1;}return 0;}int main(){int year = 0;scanf("%d", &year);int ret = is_leap(year);if (ret == 1){printf("%d 是闰年\n", year);}else{printf("%d 不是闰年");}system("pause");return 0;}

4.创建一个数组,实现函数init()初始化数组、实现empty()清空数组、实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>void init(int arr[],int size){int i = 0;for (i = 0; i < size; i++){arr[i] = i;}}void reverse(int arr[], int size){int left = 0;int right = size - 1;while (left < right){int tmp = arr[left];arr[left] = arr[right];arr[right] = tmp;left++;right--;}}void print(int arr[], int size){int i = 0;for (i = 0; i < size; i++){printf("%d ", arr[i]);}printf("\n");}void empty(int arr[], int size){int i = 0;for (i = 0; i < size; i++){arr[i] = 0;}}int main(){int arr[10];int size = sizeof(arr) / sizeof(arr[0]);init(arr, size);print(arr, size);reverse(arr, size);print(arr,size);empty(arr, size);print(arr, size);system("pause");return 0;}

5.给定两个整形变量的值,将两个值的内容进行交换。

#include <stdio.h>void swap(int *pa,int *pb){int tmp=*pa;*pa=*pb;*pb=tmp;}int main(){int a=0;int b=0;int tmp=0;    scanf("%d",&a);    scanf("%d",&b);//    tmp=a;//a=b;//b=tmp;    swap(&a,&b);printf("a=%d\nb=%d\n",a,b);return 0;}

6. 不允许创建临时变量,交换两个数的内容(附加题)

#include<stdio.h>int main(){int a=3;//0011int b=5;//0101a=a^b;//0110b=a^b;//0011a=a^b;//0101printf("a=%d\nb=%d\n",a,b);return 0;}

7.求10 个整数中最大值。

#include<stdio.h>int main(){int arr[10]={1,2,3,4,5,6,7,8,9,10};    int max=0;int i=0;max=arr[0];    for(i=0;i<sizeof(arr)/sizeof(arr[0]);i++){if(arr[i]>max){max=arr[i];}}    printf("max=%d\n",max);return 0;}

4. 写一个函数返回参数二进制中 1 的个数

比如: 15       0000 1111       4 个 1

程序原型:

int  count_one_bits(unsigned int value)

{

       // 返回 1的位数

}

#include <stdio.h>//int count_one_bits( int value)//返回1的个数//{//   int count=0;//   int i=32;//   while(i)//   {//     if(value & 1==1)// {// count++;// }//     value=value>>2;// i--;//   }//   return count;//}int count_one_bits( int num)//返回1的个数{   int count=0;   while(num)   {   count++;    num=num & (num-1);   }   return count;}int main(){    unsigned int num=0;int ret=0;scanf("%d",&num);    ret=count_one_bits(num);printf("count=%d\n",ret);return 0;}


本文出自 “顺势而为” 博客,请务必保留此出处http://lk123456.blog.51cto.com/10831443/1775969

0 0
原创粉丝点击