您的位置:首页 > 其它

函数、数组练习

2014-07-15 18:56 267 查看
#import <Foundation/Foundation.h>
#include <stdio.h>
#include <stdbool.h> //< 系统定义的>      “自定义的”
bool leapYear(int year);
bool leapYear(int year)
{
bool leap = false;      //方便以后修改
if((year % 4 == 0 && year % 100 != 0)||(year % 400 == 0))
{
leap = true;
}
return leap;
}

int maxCommonDiv(int num1,int num2);
int maxCommonDiv(int num1,int num2)
{
if(num1 == num2)
{
return num2;
}

int min = 0;
int commonDIC = 0;
min=(num1 < num2)?num1:num2;  //求出2个数中那个数最小
for (int i = 1; i <= min; i++) {    //循环最小数次求模
if (num1 % i == 0 && num2 % i ==0) {
commonDIC = i;    //得到最大公约数
}
}
return commonDIC;
}

v
4000
oid revert(int arr[],int len);
void revert(int arr[],int len)
{
if(len <= 0){
return;         // 跳出函数
}

int temp = 0;
for (int i = 0; i < len / 2; i++) {
temp = arr[i];
arr[i] = arr[len-1-i];
arr[len-1-i] = temp;
}

}

struct date
{
int year;
int month;
int day;
};

int getdayInMonth(int month,int year);
int getdayInMonth(int month,int year)
{
int day = 0;
switch (month) {
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
{
day = 31;
break;
}
case 4:case 6:case 9:case 11:
{
day = 30;
break;
}

case 2:
{
if(leapYear(year))
{
day = 29;
}
else
{
day = 28;
}

break;
}

default:
break;
}
return day;
}

void bullue(int arr[],int len);
void bullue(int arr[],int len)
{
int tmp = 0;
for (int i = 0; i < len - 1 ;i++ ) {
for (int j = 0; j <len - 1 -i; j++) {
if(arr[j] > arr[j+1])
{
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}}

void insert(int arr[],int len,int num);
void insert(int arr[],int len,int num)
{
//寻找位置
int loc = 0;     //定位置
for (int i = 0; i < len; i++)
{
if (arr[i] < num)    // 先跳出小于它的数
{
continue;
}
loc = i;         //定位置
break;
}
//移位
for (int j = len; j > loc; j--) {    //从后到当前位置
arr[j] = arr[j -1];    //把前一个值赋到最后的值中
}
arr[loc] = num; //将当前位的num置赋
//输出
for (int k = 0; k < len; k++) {
printf("%d\t",arr[k]);
}
printf("\n");
}

int main(int argc, const char * argv[])
{
//定义一个函数。功能:传入一个年份,求该年是不是闰年。函数名字 bool leapYear(int year);
int y = 2012;
printf("%d is or not leap year:%d\n",y,leapYear(y));

//定义一个函数。作用是求整数num1和num2的最大公约数,并返回该值。函数名字int maxCommonDivisor(int num1,int num2);
printf("最大公约数为:%d\n",maxCommonDiv(2,4));

//将一个数组中的值按逆序重新存放,例如原来的顺序为:8,6, 5, 4,1.要求改为:1,4,5,6,8;并将数组中的值输出。
int arr[] = {1,3,5,7,9};
revert(arr, 5);
for (int i = 0; i < 5; i++) {
printf("%d\t",arr[i]);
}

//定义一个结构体变量(包括年、月、日)。计算该日在本年中是第几天?注意闰年问题。
struct date d = {2014,2,1};
int day = 0;
for (int i = 1;i < d.month; i++) {
day += getdayInMonth(i,d.year);
}
day += d.day;
printf("%d-%d-%d是一年中的第%d天\n",d.year,d.month,d.day,day);

//编写一个函数用“冒泡法”对10个字符 reputation 按由小到大顺序排序。
//char a[11] = {'r','e','p','u','t','a','t','i','o','n','\0'};
char a[] = "reputation";
int temp = 0;
for (int i = 0; i < 9; i++) {                  //控制趟和下标
for (int j = 0; j < 10 - i -1; j++) {       //控制次数和下标
if(a[j] > a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
printf("a = %s\n",a);

//编写子函数:(1)用”冒泡法”将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个数,并且保持该数组仍为升序数组的函数---SUB2。 主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数,调用SUB2将其插入该数组。
int k[6] = {1,56,7,10,12};
insert(k,6,8);

//随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值及各元素之和。
//产生一个10到50间的随机数
int r = 0;
int x = 10,y1 =50;
r = arc4random() % (y1- x + 1)+x;
printf("%d\n",arc4random());
printf("%d\n",r);

//    srand((unsigned int)time(NULL));
//    int r = rand()%41+10;       //[10,50]
//    printf("r = %d\n",r);
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐