ios学习笔记 --(c语言基础4)

这篇博客通过一系列的C语言编程练习,涵盖了数组排序、字符串操作、选举模拟和约瑟夫环问题的解决方案,深入浅出地介绍了C语言在iOS开发中的基础知识应用。
摘要由CSDN通过智能技术生成

//test1();//编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组
// test2();//给定某年某月某日,将其转换成这一年的第几天并输出。
//test3();//编写整型值数组排序程序(冒泡排序–升序)
// test4();//找出下列整型数组中最大和最小值及其所在位置i。int a[] = {5,-9,32,77,64,-24,14,0,21,45};
//test5();//char result[50] = {0};char str1[] = “Shangcheng “;char str2[] = “class “;char str3[] = ” is niu best!”;把str1, str2, str3合并到result数组中。
//test6();//模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时,直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
// test7();//题:编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。比如:”ni hap world”,最长单词是world
//
// test8();//数组解决约瑟夫环
test9();//简单链表的创建

//
//  main.m
//  c32 test
//
//  Created by dq on 15/7/17.
//  Copyright (c) 2015年 dq. All rights reserved.
//

#import <Foundation/Foundation.h>
void insertSort(int a[])

{
    for (int i=1; i<5; i++) {
        if (a[i]<a[i-1]) {
            int j=i-1;
            int x =a[i];
            while (x<a[j]&&j>=0) {
                a[j+1]=a[j];
                j--;
            }
            a[j+1]=x;
        }
    }

//    for (int i=0; i<5; i++) {
//        printf("%d ",a[i]);
//    }
}
void zuhe(int a[],int b[])
{
    int c[10];
    int i=0,j=0;
    int k=0;
    while (i<5&&j<5) {

    if(a[i]>b[j])
    {
        c[k]=b[j];
        j++;
    }
    else{
        c[k]=a[i];
        i++;}
        k++;
    }
    if(i==5)
    {
        for (int a1=0; a1<5-j; a1++) {
            c[k]=b[j];
            k++;
            j++;
        }
    }
    else
    {
        for (int a1=0; a1<5-i; a1++) {
            c[k]=a[i];
            k++;
            i++;
    }

}
    for (int i=0 ;i<10; i++) {
        printf("%d ",c[i]);
    }
}
void test2()
{
    int a,b,c,sum=0;
    printf("请输入某年.某月.某日");
    scanf("%d.%d.%d",&a,&b,&c);

    if ((a%4==0&&a%100!=0)||a%400==0) {
        switch (b) {
            case 12:
                sum+=31;
            case 11:
                sum+=28;

            case 10:
                 sum+=31;

            case 9:
                 sum+=30;

            case 8:
                 sum+=31;

            case 7:
                 sum+=30;

            case 6:
                 sum+=31;

            case 5:
                 sum+=31;
            case 4:
                sum+=30;
            case 3:
                sum+=31;
            case 2:
                sum+=30;
            case 1:
                sum+=31;break;


            default:
                break;
        }
        printf("这是这一年的第%d天",sum+c);
    }
    else
    {

        switch (b) {
            case 12:
                sum+=31;
            case 11:
                sum+=29;

            case 10:
                sum+=31;

            case 9:
                sum+=30;

            case 8:
                sum+=31;

            case 7:
                sum+=30;

            case 6:
                sum+=31;

            case 5:
                sum+=31;
            case 4:
                sum+=30;
            case 3:
                sum+=31;
            case 2:
                sum+=30;
            case 1:
                sum+=31;break;


            default:
                break;
        }
        printf("这是这一年的第%d天",sum+c);
    }

}

void test1()
{
    int a[5],b[5];
    printf("请输入第一个数组的值\n");
    for (int i=0; i<5; i++) {
        scanf("%d,",a+i);
    }
    printf("请输入第二个数组的值\n");
    for (int i=0; i<5; i++) {
        scanf("%d,",b+i);
    }

    insertSort(a);
    insertSort(b);
    zuhe(a, b);




}
void test3()
{
    int a[] = {3,-9,32,77,63,-24,14,0,21,45};
    for (int i=0; i<9; i++) {
        for (int j=0; j<9-i; j++) {
            if (a[j]>a[j+1]) {
                int temp =a[j];
                a[j] =a[j+1];
                a[j+1]=temp;
            }
        }
    }
    for (int i=0; i<10; i++) {
        printf("%d ",a[i]);
    }

}
void test4()
{
    int a[] = {5,-9,32,77,64,-24,14,0,21,45};
    int max=0,maxIdenx=0,min=0,minIdenx=0;
    for (int i=0; i<10; i++) {
        if(max<a[i])
        {
            max=a[i];
            maxIdenx=i;
        }
        if (min>a[i]) {
            min =a[i];
            minIdenx=i;
        }
    }
    printf("最大值%d下标%d 最小值%d下标%d",max,maxIdenx,min,minIdenx);

}
void test5()
{

    char str1[30] = "Shangcheng ";
    char str2[30] = "class ";
    char str3[30] = " is niu best!";
    char result[50]={0};
    strcat(str1, str2);
    printf("%s\n",str1);
    strcat(str1, str3);
     printf("%s\n",str1);
    strcat(result,str1);
//    printf("%s",result);
    puts(result);
}

void test6()
{
    int n=100,aNum=0,bNum=0,cNum=0,dNum=0;
    for (int i=0; i<n; i++){
    char a =arc4random()%5+65;//总共产生5种可能 ABCD 和无效票
        switch (a) {
            case 'A':
                aNum++;
                break;
            case 'B':
                bNum++;
                break;
            case 'C':
                cNum++;
                break;
            case 'D':
                dNum++;
                break;

            default:
                break;
        }

    }
    printf("A的票数%d\nB的票数%d\nC的票数%d\nD的票数%d",aNum,bNum,cNum,dNum);

}
void test7()
{
    int temp,count=0,low_index=0,high_index=0,low_temp,high_temp;
    char a[]="you a55555re b111111111est";
   // printf("%d",(int)strlen(a));

    for (int i=0; i<strlen(a); i++) {
        temp =0;
        low_temp=i;
        while (a[i]!=' '&&a[i]!='\0') {
            temp++;
            i++;
        }
        high_temp =i-1;
        if(temp>count)
        {
            count =temp;
            low_index=low_temp;
            high_index=high_temp;

        }

    }
    for (int i=low_index; i<=high_index; i++) {
        printf("%c",a[i]);
    }

}
void test8()
{
    int m,n;
    int num=1;
    int *a;
    a=malloc(sizeof(int));
    printf("请输入相应的值");
    scanf("%d,%d",&n,&m);
    for (int i=1;i<=n; i++) {
        a[i]=i;
    }
    for (int i=n; i>=1; i--) {
        num = (num+m-1)%i;
        if(num==0)
            num=i;
        printf("%d\n",a[num]);
        for (int j=num; j<=i; j++) {
            a[j]=a[j+1];
        }


    }

}
struct People
{
    long num;
    float score;
    struct People *next;
};//结点的存储结构
void test9()
{
    struct People a,b,*head,*p;
    a.num=100;a.score=98;
    b.num=101;b.score=99;
    head =&a;
    a.next=&b;
    b.next=NULL;
    p=head;
    while (p!=NULL) {
        printf("%ld %f\n",p->num,p->score);
        p=p->next;
    }






}


int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //test1();//编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排序,然后将这两个数组合并成一个升序数组
       // test2();//给定某年某月某日,将其转换成这一年的第几天并输出。
        //test3();//编写整型值数组排序程序(冒泡排序--升序)
       // test4();//找出下列整型数组中最大和最小值及其所在位置i。int a[] = {5,-9,32,77,64,-24,14,0,21,45};
        //test5();//char result[50] = {0};char str1[] = “Shangcheng ";char str2[] = "class ";char str3[] = " is niu best!";把str1, str2, str3合并到result数组中。
        //test6();//模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当选某候选人时,直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票,选举结束后按得票数从高到低输出候选人编号和所得票数。
      // test7();//题:编程在一个已知的字符串中找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词。比如:"ni hap world",最长单词是world
        //
       // test8();//数组解决约瑟夫环
        test9();//简单链表的创建






    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值