C++的习题?求救啊!不太会啊!计算机编程高手们!!
1、编写函数及完整程序,满足以下要求:①编写函数,将字符串中从第m个字符开始的全部字符复制为另一个字符串;②主函数中声明两个包含20个元素的char型数组,其中一个数组由...
1、编写函数及完整程序,满足以下要求:
①编写函数,将字符串中从第m个字符开始的全部字符复制为另一个字符串;
②主函数中声明两个包含20个元素的char型数组,其中一个数组由字符串"Keep a sharp eye."进行初始化,另一个数组通过调用上面函数得到,函数中m的值由监考老师输入。
③输出两个数组。
例:若m值为2,则两个数组分别为:
"Keep a sharp eye."
"ep a sharp eye."
2、按下面要求编写函数及完整程序:
①整型数组中共有10个元素,被初始化为0,1,…,9。
② 利用函数移动数组元素的值:使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,其中m的值由监考老师输入。
③ 依次输出变换后的数组元素。
例:对于整型数组a,若m值为3,则 a[0], a[1], …,a[9]的值将依次变为
7, 8, 9, 0, 1, 2, 3, 4, 5, 6 展开
①编写函数,将字符串中从第m个字符开始的全部字符复制为另一个字符串;
②主函数中声明两个包含20个元素的char型数组,其中一个数组由字符串"Keep a sharp eye."进行初始化,另一个数组通过调用上面函数得到,函数中m的值由监考老师输入。
③输出两个数组。
例:若m值为2,则两个数组分别为:
"Keep a sharp eye."
"ep a sharp eye."
2、按下面要求编写函数及完整程序:
①整型数组中共有10个元素,被初始化为0,1,…,9。
② 利用函数移动数组元素的值:使前面各数顺序向后移m个位置,最后m个数变成最前面m个数,其中m的值由监考老师输入。
③ 依次输出变换后的数组元素。
例:对于整型数组a,若m值为3,则 a[0], a[1], …,a[9]的值将依次变为
7, 8, 9, 0, 1, 2, 3, 4, 5, 6 展开
4个回答
展开全部
1.
#include "stdio.h"
void main(void)
{
void copyStrByLaw(char a[],int m,char b[]);
char a[20]="Keep a sharp eye.";
char b[20]={0};
int m;
printf("Please input a number m:\n");
scanf("%d",&m);
copyStrByLaw(a,m,b);
puts(b);
}
void copyStrByLaw(char a[],int m,char b[])
{
int i=0;
while(a[i])
{
b[i]=a[i+m];
i++;
}
}
2.
#include "stdio.h"
void main(void)
{
void moveBylaw(int a[],int b[],int m);
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b[10];
int m;
printf("Please input m:\n");
scanf("%d",&m);
moveBylaw(a,b,m);
for(int i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
}
void moveBylaw(int a[],int b[],int m)
{
int k=0;
for(int i=0;i<10;i++)
{
if(10-m+i<=9)
b[i]=a[10-m+i];
else
b[i]=a[k++];
}
}
纯手工,VC调试无误,可以直接COPY去验证。
#include "stdio.h"
void main(void)
{
void copyStrByLaw(char a[],int m,char b[]);
char a[20]="Keep a sharp eye.";
char b[20]={0};
int m;
printf("Please input a number m:\n");
scanf("%d",&m);
copyStrByLaw(a,m,b);
puts(b);
}
void copyStrByLaw(char a[],int m,char b[])
{
int i=0;
while(a[i])
{
b[i]=a[i+m];
i++;
}
}
2.
#include "stdio.h"
void main(void)
{
void moveBylaw(int a[],int b[],int m);
int a[10]={0,1,2,3,4,5,6,7,8,9};
int b[10];
int m;
printf("Please input m:\n");
scanf("%d",&m);
moveBylaw(a,b,m);
for(int i=0;i<10;i++)
printf("%d ",b[i]);
printf("\n");
}
void moveBylaw(int a[],int b[],int m)
{
int k=0;
for(int i=0;i<10;i++)
{
if(10-m+i<=9)
b[i]=a[10-m+i];
else
b[i]=a[k++];
}
}
纯手工,VC调试无误,可以直接COPY去验证。
展开全部
int m; int i; int n=0
char str1[20]="Keep a sharp eye.";
char str2[20];
scanf("%d",&m);
for(i=m;m<20;m++)
{
str2[n]=str1[m]; n++;
}
char str1[20]="Keep a sharp eye.";
char str2[20];
scanf("%d",&m);
for(i=m;m<20;m++)
{
str2[n]=str1[m]; n++;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一分都不给,就想求代码,我觉得你想多了,这样的题目最少得有50分吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
个人意见 上网直接求代码 真的有点烦
追问
大哥,你以为我是白痴吗?你以为我不会上网搜索吗?你自己搜一搜试试……
追答
我说的是你自己最好说明是那一部分不会
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询