第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<stdio.h>
int main(void)
{
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++;
}
}
return 0;
}
第2关:指针变量作为函数参数实现两变量交换值
任务描述
题目描述:对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。
####输入
两个整数a b
####输出
输出用函数交换处理后的值a b
####样例输入
1 2
####样例输出
2 1
开始你的任务吧,祝你成功!
**
任务描述
题目描述:对输入的两个整数a,b,用指针变量作为函数参数,交换a和b的值。
####相关知识(略)
####编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入
两个整数a b
输出
输出用函数交换处理后的值a b
####测试说明
样例输入:
1 2
样例输出:
2 1
参考答案:
#include "stdio.h"
//交换两个变量的值
void swap2(int *p1,int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
int main()
{
// int c = 3,d = 4;
// printf("swap2交换c-d之前:%d,%d\n",c,d);
int c,d;
scanf("%d %d",&c,&d);
swap2(&c,&d);
// printf("swap2交换c-d之后:%d,%d\n",c,d);
printf("%d %d",c,d);
}
第3关:报数
任务描述
题目描述:有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
####相关知识(略)
####编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入
初始人数n
输出
最后一人的初始编号
####测试说明
样例输入:
3
样例输出:
2
参考答案:
#include<stdio.h>
int main()
{
int i,n,a[100],count,* p,out;
scanf("%d",&n);
for(i=0;i<n;i++)
a[i]=i+1;
i=0;
count=0;
out=0;
p=a;
while(out<n-1)
{
if(*(p+i)!=0)
count++;
if(count==3)
{
*(p+i)=0;
count=0;
out++;
}
i++;
if(i==n)
i=0;
}
while(*p==0)
p++;
printf("%d\n",*p);
return 0;
}
第4关:strcmp函数
任务描述
题目描述:用一个函数实现两个字符串的比较,即自己写一个strcmp函数
####相关知识(略)
####编程要求
请仔细阅读右侧代码,结合相关知识,在Begin-End区域内进行代码补充。
输入
输入两字符串
输出
输出最大的那个字符串
####测试说明
样例输入:
abc
abd
样例输出:
abd
参考答案:
#include<stdio.h>
#include<string.h>
int main()
{
char a[100],b[100],t[100];
scanf("%s",a);
scanf("%s",b);
if(strcmp(a,b)>0)
{
strcpy(t,a);
strcpy(a,b);
strcpy(b,t);
}
puts(b);
return 0;
}