头歌C语言指针

目录

第1关:用指针法输入12个整数,然后按每行4个数输出

任务描述

第2关:指针变量作为函数参数实现两变量交换值

任务描述

第3关:报数

任务描述

第4关:strcmp函数

任务描述


第1关:用指针法输入12个整数,然后按每行4个数输出

任务描述

题目描述:用指针法输入12个整数,然后按每行4个数输出

####相关知识(略)

####编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

输入

输入包含一行,有12个整数。

输出

按顺序,每行输出4个整数。

####测试说明

样例输入:

1 2 3 4 5 6 7 8 9 10 11 12

样例输出:

1 2 3 4 5 6 7 8 9 10 11 12

#include
int main(void)
{
    /*********Begin*********/
    int a[12],n,i;
    int *b=a;
    for(n=0;n<12;n++)
    {
        scanf("%d",b++);
    }
    b=a;
    i=1;
    for(n=0;n<12;n++)
    {
        if((n+1)/4==i)
        {
            printf("%d",*b);
        }
        else{
            printf("%d ", *b);
        }
        b++;
        if((n+1)/4==i){
            if(i==3){
                break;
            }
            printf("\n");
            i++;
        }
    }

    /*********End**********/
    return 0;
}

第2关:指针变量作为函数参数实现两变量交换值

任务描述

题目描述:对输入的两个整数ab,用指针变量作为函数参数,交换ab的值。

####相关知识(略)

####编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

输入

两个整数a b

输出

输出用函数交换处理后的值a b

####测试说明

样例输入: 1 2

样例输出: 2 1

#include
/*********Begin*********/
void swap2(int *p1,int *p2)
{
    int temp;
    temp=*p1;
    *p1=*p2;
    *p2=temp;
}

/*********End**********/
int main(void)
{
	int a,b;
	scanf("%d%d",&a,&b);
	/*********Begin*********/
    swap2(&a,&b);
    printf("%d %d",a,b);

	/*********End**********/
    return 0;
}

第3关:报数

任务描述

题目描述:有n人围成一圈,顺序排号。从第1个人开始报数(从13报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。

####相关知识(略)

####编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

输入

初始人数n

输出

最后一人的初始编号

####测试说明

样例输入:

3

样例输出:

2

#include
int main(void)
{
    /*********Begin*********/
    int n,ans,i;
    scanf("%d",&n);
    ans=0;
    if(n==0)
    return 0;
    for(i=2;i<=n;i++)
    ans=(ans+3)%i;
    printf("%d\n",ans%n+1);

    /*********End**********/
    return 0;
}

第4关:strcmp函数

任务描述

题目描述:用一个函数实现两个字符串的比较,即自己写一个strcmp函数

####相关知识(略)

####编程要求

请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。

输入

输入两字符串

输出

输出最大的那个字符串

####测试说明

样例输入: abc abd

样例输出: abd

#include
int strcmp(char *p1,char *p2){
	/*********Begin*********/
    int i;
    i=0;
    while(*(p1+i)==*(p2+2))
    {
        if(*(p1+i++)=='\0')
        {
            return 0;
        }
    }
    return (*(p1+i)-(*(p2+i)));
	/*********End**********/
}
int main(void)
{
	char a[110],b[110];
	scanf("%s%s",a,b);
	if(strcmp(a,b)>0)
		printf("%s", a);
	else
		printf("%s", b);


    return 0;
}

你可能感兴趣的:(c语言,算法)