第十三堂課後作業

作業1:
輸入一個字符串和一個正整數m,將該字符串中的前m個字符複製到另一個字符串中,再輸出後一個字符串。
運行示例
Enter a string: abcdefghijk
Enter an integer: 6
The new string is abcdef

----------------------分割線----------------------


#include<stdio.h>
#define N 10
int main(void)
{

	char a[N];
	int n;
	gets(a);
	scanf("%d",&n);
	a[n]='\0';
	puts(a);
	return 0;
}

作業2:
編一個函數void fun( char *ss),從鍵盤輸入一個字符串存入數組a中,利用函數再將a的內容前後倒置後重新存入數組a中並輸出(要求用指針訪問數組元素)
運行示例
輸入: abc 123
輸出:321 cba
----------------------分割線----------------------

#include<stdio.h>
#include<string.h>
#define N 10
void fun(char *p);
int main(void)
{

	char a[N];
	printf("輸入:");
	gets(a);
	fun(a);
	printf("輸出:");
	puts(a);
	return 0;
}
void fun(char *p)
{
	char *m=p;
	p+=strlen(p)-1;
	char temp;
	while(m<p)
	{
		temp=*m;
		*m=*p;
		*p=temp;
		p--;
		m++;
	}
	
}

作業3:
編一個程序,輸入4組整形數,每組3個數,分別求出每組最大的數字,並輸出
要求:用函數int max(int *x,int *y,int *z)求出三個數中的最大數
運行示例
.
----------------------分割線----------------------

#include<stdio.h>
int max(int *x,int *y,int *z);
int main(void)
{
	int n=3;
	int a[12];
	for(int i=0;i<3;i++)
		scanf("%d %d %d",a+3*i,a+3*i+1,a+3*i+2);
	for(int i=0;i<3;i++)
		{
			printf("%d",max(a+3*i,a+3*i+1,a+3*i+2));
		}
		return 0;
}
int max(int *x,int *y,int *z)
{
	int m;
	m=*x>*y?*x:*y;
	if(m<*z)m=*z;
	return m;
}

作業4:
輸入字符串s,將數字字符放入d數組中,最後輸出d中的字符串。
運行示例
輸入字符串:abc123edf456gh
輸出數字  :123456



#include<stdio.h>
#define N 10
int main(void)
{
	char a[N],d[N];
	gets(a);
	char *p=a;
	int i=0;
	while(*p!='\0')
	{
		if(*p<=57&&*p>=48){
			d[i]=*p;
			i++;
		}
		p++;
	}
	d[i]='\0';
	puts(d);
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章