【C PTA】指针专项练习(二)_其中s和 t 都是用户传入的参数。函数先将在字符串s中的字符按逆序存放到t串中,然

int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);

int main()

{

int h, f, c, r;

scanf("%d%d", &h, &f);

if (ChickenRabbit(&c, &r, h, f))

{

    printf("%d %d\n", c, r);

}

else

{

    puts("None");

}

return 0;

}

/* 你的提交代码将被嵌在这里 */


输入样例1


35 94


输出样例1


23 12


输入样例2


30 71


输出样例2


None



int ChickenRabbit(int *chicken, int *rabbit, int head, int foot)
{
for(int i=0;i<=head;i++)
{
int j=head-i;
if(i*2+j*4==foot)
{
*chicken=i;
*rabbit=j;
return 1;
}
}
return 0;
}//简单判断即可


### 6-2 冒泡排序


输入n(1<=n<=10)个整数,将它们从小到大排序后输出,要求编写函数bubble()实现冒泡排序算法。  
 函数接口定义:



void bubble (int a[ ], int n);


其中 a为数组,n为数据个数。  
 裁判测试程序样例:



#include <stdio.h>

void bubble (int a[ ], int n);

int main(void)

{

int n, a[10];

int i;

scanf("%d", &n);

for (i=0; i<n;i++)

    scanf("%d",&a[i]);

bubble(a,n);

for (i=0; i<n; i++)

    printf("%d ",a[i]);

printf(“\n”);

return 0;

}

/* 请在这里填写答案 */


输入样例:


8  
 7 3 66 3 -5 22 -77 2


输出样例:


-77 -5 2 3 3 7 22 66



void bubble (int a[ ], int n)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(a[j]>a[j+1])
{
int t=a[j+1];
a[j+1]=a[j];
a[j]=t;
}
}
}
}


### 6-3 字符串反正序连接


先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。  
 函数接口定义:



void fun (char *s, char *t);


其中s和 t 都是用户传入的参数。函数先将在字符串s中的字符按逆序存放到t串中,然后把s中的字符按正序连接到t串的后面。


裁判测试程序样例:



#include <stdio.h>

void fun (char *s, char *t);

int main()

{ char s[100], t[100];

scanf(“%s”, s);

fun(s, t);

printf(“%s\n”, t);

return 0;

}

/* 请在这里填写答案 */


输入样例:


abcd


输出样例:


dcbaabcd



void fun (char *s, char *t)
{
int j=0;
//计算长度
int l=0;
while(s[l]!=‘\0’)
l++;

for(int i=l-1;i>=0;i--)
{
    t[j]=s[i];
    j++;
}

int p=j;
for(int i=0;i<l;i++)
{
    t[p]=s[i];
    p++;
}
t[p]='\0';

}


### 6-4 计算最长的字符串长度


本题要求实现一个函数,用于计算有n个元素的指针数组s中最长的字符串的长度。  
 函数接口定义:



int max_len( char *s[], int n );


其中n个字符串存储在s[]中,函数max\_len应返回其中最长字符串的长度。  
 裁判测试程序样例:



#include <stdio.h>

#include <string.h>

#include <stdlib.h>

#define MAXN 10

#define MAXS 20

int max_len( char *s[], int n );

int main()

{

int i, n;

char \*string[MAXN] = {NULL};



scanf("%d", &n);

for(i = 0; i < n; i++) {

    string[i] = (char \*)malloc(sizeof(char)\*MAXS);

    scanf("%s", string[i]);

}

printf("%d\n", max\_len(string, n));


return 0;

}

/* 你的代码将被嵌在这里 */


输入样例:


4  
 blue  
 yellow  
 red  
 green


输出样例:


6


### 6-5 查找星期


本题要求实现函数,可以根据下表查找到星期,返回对应的序号。  
 序号 星期  
 0 Sunday  
 1 Monday  
 2 Tuesday  
 3 Wednesday  
 4 Thursday  
 5 Friday  
 6 Saturday  
 函数接口定义:



int getindex( char *s );


函数getindex应返回字符串s序号。如果传入的参数s不是一个代表星期的字符串,则返回-1。  
 裁判测试程序样例:



#include <stdio.h>

#include <string.h>

#define MAXS 80

int getindex( char *s );

int main()

{

int n;

char s[MAXS];



scanf("%s", s);

n = getindex(s);

if ( n==-1 ) printf("wrong input!\n");

else printf("%d\n", n);


return 0;

}

/* 你的代码将被嵌在这里 */


输入样例1:


Tuesday


输出样例1:


2


输入样例2:


today


输出样例2:


wrong input!



int getindex( char *s )
{
if(strcmp(s,“Sunday”)==0)
return 0;
if(strcmp(s,“Monday”)==0)
return 1;
if(strcmp(s,“Tuesday”)==0)
return 2;
if(strcmp(s,“Wednesday”)==0)
return 3;
if(strcmp(s,“Thursday”)==0)
return 4;
if(strcmp(s,“Friday”)==0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值