作业1:
输入一个字符串和一个正整数m,将该字符串中的前m个字符复制到另一个字符串中,再输出后一个字符串。
运行示例
Enter a string: abcdefghijk
Enter an integer: 6
The new string is abcdef
#include "stdafx.h"
void main()
{
char a[128],b[128];
int x;
printf("Enter a string:");
gets_s(a);
printf("Enter an integer:");
scanf_s("%d",&x);
for(int i=0;i<x;i++)
{
b[i]=a[i];
};
b[x]='\0';
puts(b);
}
----------------------分割线----------------------
作业2:
编一个函数void fun( char *ss),从键盘输入一个字符串存入数组a中,利用函数再将a的内容前后倒置后重新存入数组a中并输出(要求用指针访问数组元素)
运行示例
输入: abc 123
输出:321 cba
#include "stdafx.h"
#include<string.h>
void fun(char *ss)
{
int n=strlen(ss);
char t,*p,*i,*j,m=(n-1)/2;
i=ss; //i保存数组第一个指针
j=ss+n-1; //j保存数组最后一个指针
p=ss+m; //p保存中间指针
for(;i<=p;i++,j--)//首尾向中间循环(第一个跟最后个交换,依此类推)
{
t=*i;
*i=*j;
*j=t;
}
}
void main()
{
char a[128];
printf("Please put a string:\n");
gets_s(a);
fun(a);
printf("output string :\n %s\n",a);
}
----------------------分割线----------------------
作业3:
编一个程序,输入4组整形数,每组3个数,分别求出每组最大的数字,并输出
要求:用函数int max(int *x,int *y,int *z)求出三个数中的最大数
运行示例
.
#include "stdafx.h"
int max(int *x,int *y,int *z)
{ if(*x>=*y&&*x>=*z) return *x;
if(*y>=*x&&*y>=*z) return *y;
else return *z;
}
void main()
{ int i;
int a[4][3];
for(i=0;i<4;i++)
{
scanf_s("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);
}
for(i=0;i<4;i++)
{
printf("第%d组的最大值为%d\n",i+1,max(a[i],a[i]+1,a[i]+2));
}
}
----------------------分割线----------------------
作业4:
输入字符串s,将数字字符放入d数组中,最后输出d中的字符串。
运行示例
输入字符串:abc123edf456gh
输出数字 :123456
#include "stdafx.h"
void main()
{
char s[128],d[128];
int j=0;
gets_s(s);
for(int i=0;s[i]!='\0';i++)
{
if(s[i]<58&&s[i]>47)
{
d[j]=s[i];
j++;
}
}
d[j]='\0';
puts(d);
}