指针、数组与函数例题3

1、字符串复制

题目描述

设计函数实现字符串复制功能,每个字符串长度不超过100,不要使用系统提供的strcpy函数

输入要求

从键盘读入一个字符串到数组b中,以换行符结束

输出要求

将内容复制到另一个数组a中,并分别输出数组a和数组b中的内容

输入样例

Frank comes from Thailand

输出样例

String a is:Frank comes from Thailand.

String b is:Frank comes from Thailand.

代码示例

#include <stdio.h>
char mystrcpy(char a[101],char b[101])
{
	int i;
	for(i=0;b[i]!='\0';i++)
	{
		a[i]=b[i];
	}
	a[i]='\0';  //以\0结尾,很重要
}
int main() 
{ 
	char a[101],b[101],*p1,*p2;
	int i;
	gets(b);
	//调用复制函数   
	mystrcpy(a,b);  
	    
	printf("String a is:%s\n",a);    
	printf("String b is:%s\n",b);
	return 0;
}

2、比较串的大小

题目描述

设计函数,比较两个字符串的大小,每个字符串长度不超过50,不要使用系统提供的库函数

输入要求

从键盘分别读入两个字符串,每个字符串以换行符结束

输出要求

比较两个字符串的大小,输出相应的结果。

输入样例

Hello

hi

输出样例

Hello<hi

代码示例:

#include<stdio.h>
char mystrcmp(char *s1,char *s2)
{
	int i,c;
	for(i=0;s1[i]||s2[i];i++)
	{
		if(s1[i]!=s2[i])
		{
			c=s1[i]-s2[i];
			break;
		}
	}
	if(s1[i]=='\0'&&s2[i]=='\0')
	{
		c=0;
	}
	return c;
}
int main()
{
	char s1[51],s2[51];
	int k;
	gets(s1);
	gets(s2);
	k=mystrcmp(s1,s2); 
	if(k>0)           
		printf("%s > %s\n",s1,s2);
	else if(k==0)       
		printf("%s = %s\n",s1,s2);
	else              
		printf("%s < %s\n",s1,s2);
	return 0;
}

3、正数的平均值

题目描述

输入10个实数,计算并输出所有大于0的数的平均值

输入要求

输入10个实数

输出要求

计算大于0的数的平均值

输入样例

-5 2 -6 9 -4 -2 0 6 1 10

输出样例

5.60

代码示例

#include<stdio.h>
#define N 10
double ave(double a[],int n)
{
	int i,count=0;
	double sum=0;
	for(i=0;i<n;i++)
	{
		if(a[i]>0)
		{
			sum+=a[i];
			count++;
		}
	}
	return sum/count;
}
int main()
{
	double a[N],res;
	int i;
	for(i=0;i<N;i++)
	{
		scanf("%lf",&a[i]);
	}
    res=ave(a,N);   //调用函数求大于0的数的平均值
	printf("%.2f\n",res);
	return 0;
}

4、数组中对应元素相减

题目描述

设计函数,实现两个一维数组的对应元素相减

输入要求

在主函数中各输入10个整数到数组a和数组b中

输出要求

设计函数计算并输出a-b的结果

输入样例

28 65 78 4 3 2 1 21 -9 -19

3 4 56 -81 8 1 0 10 8 -21

输出样例

25 61 22 85 -5 1 1 11 -17 2

代码示例

#include<stdio.h>
int sub(int a[],int b[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("%d ",a[i]-b[i]);
	}
}
int main()
{
	int a[10],b[10],i;
	for(i=0;i<10;i++)
		scanf("%d",&a[i]);
	for(i=0;i<10;i++)
		scanf("%d",&b[i]);
	sub(a,b,10);  //调用函数
	printf("\n");

	return 0;
}

5、无序数组的查找

题目描述

已知一维数组中的10个元素各不相同,查找数组中是否存在值位key的数组元素。如果有,输出相应的下标,否则输出not found。已知数组无序排列

输入要求

先从键盘输入10个整数。然后再输入一个待查找的数据key

输出要求

若存在,则输出该数所在位置的下标,若不存在,则输出not found

输入样例

6 70 -9 80 83 54 3 88 10 2

80

输出样例

3

代码示例

#include<stdio.h>
int main()
{
	int a[10],key,k=0,set=0;
	int i;
	for(i=0;i<10;i++)
	{
		scanf("%d",&a[i]);
	}
	
	scanf("%d",&key);
	
	for(i=0;i<10;i++)
	{
		if(a[i]==key)
		{
			k=i;
			set=1;
		}
	}
	if(set)
		printf("%d\n",k);
	else
		printf("not found\n");
	return 0;
}

相关推荐

  1. 指针数组函数例题3

    2023-12-05 21:32:06       29 阅读
  2. 27.函数指针数组

    2023-12-05 21:32:06       22 阅读
  3. 50. C++ 指针函数函数指针

    2023-12-05 21:32:06       27 阅读
  4. 指针数组数组指针

    2023-12-05 21:32:06       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 21:32:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 21:32:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 21:32:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 21:32:06       20 阅读

热门阅读

  1. 算法通关村第十三关|白银|数字与数学高频问题

    2023-12-05 21:32:06       42 阅读
  2. Hadoop 概述

    2023-12-05 21:32:06       30 阅读
  3. C++:模板进阶

    2023-12-05 21:32:06       31 阅读
  4. vue 生命周期

    2023-12-05 21:32:06       38 阅读
  5. HuggingFace学习笔记--利用API实现简单的NLP任务

    2023-12-05 21:32:06       33 阅读
  6. HarmonyOS开发(八):动画及网络

    2023-12-05 21:32:06       27 阅读
  7. 用互斥锁、信号量、条件变量实现线程同步

    2023-12-05 21:32:06       31 阅读
  8. C++学习寄录(九.多态)

    2023-12-05 21:32:06       30 阅读
  9. 复杂sql分析 以及 索引合并

    2023-12-05 21:32:06       25 阅读
  10. bitnami Docker 安装ELK(elasticsearch, logstash, kibana)

    2023-12-05 21:32:06       35 阅读
  11. mysql多版本并发控制mvcc

    2023-12-05 21:32:06       30 阅读