程序要求是输入m,把第1~m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。我错在哪里

作者&投稿:岛试 (若有异议请与网页底部的电邮联系)
函数fun:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。~

#include
#include
void fun(char N[],int m,int num);
#define Max 1024
void main()
{
int k,num,i;

char N[Max]={"ABCDEFGHIJK"};
num=strlen(N); // 调用strlen函数 计算字符串的长度;
for(i=0;i<num;i++)
printf("%c",N[i]);
printf("
");
printf("请输入平移的个数:
");
scanf("%d",&k);
fun(N,k,num);
for(i=0;i<num;i++)
printf("%c",N[k+i]);
printf("
");
}
void fun(char N[],int m,int num)
{
int i;
for(i=0;i<m;i++) //算法很简单 原来用了num个字符 ,如果你平移m 那么你就把
N[num+i]=N[i]; //前m个字符复制到原来num个字符后面,输出的时候就重第m个开始
//这样就行了
}

数组移位要用翻手法。将左右手的掌心向自己上下排列,如何将上面的手移到下面,将下面的手移到上面。具体可以看《编程珠玑》
#include
#include

void swap(char *a, char *b)
{
char tmp=*a;
*a=*b;
*b=tmp;
}

void string_reverse(char str[], int l, int r)
{
int m=(r-l)/2;
int i;
for(i=0;i<=m;i++)
swap(str+l+i, str+r-i);
}

void string_move(char str[], int m)
{
int len=strlen(str);
string_reverse(str,0,m-1);
string_reverse(str,m,len-1);
string_reverse(str,0,len-1);
}

int main(void)
{
char str[12]="abcdefghijk";
printf("%s
",str);
string_move(str,5);
printf("%s
",str);
return 0;
}

错误原因:strlen函数求得的是字符串的实际长度,而下标值只取[0, strlen(str)),前闭后开,所以fun函数中第一个循环i的循环条件时i<q


编写程序输入m(m<10)个整数,完成如下功能:1)使用选择法排序将数组元素升...
public static void main(String[] args) { ArrayList lis=new ArrayList<>();Scanner scan=null;System.out.println("请输10个整数");for(int i=0;i<10;i++){ try { scan=new Scanner(System.in);lis.add(scan.nextInt());} catch (Exception e) { System.out.println("请输不规范...

c语言求高手解答,让程序要求用户输入一个大写字母,使用嵌套循环产生下 ...
双重循环 include <stdio.h>#include<stdlib.h> void PrintPyramid(char c); main(){ char n; printf("Please input a capital:\\n"); scanf("%c",&n); PrintPyramid(n); system("pause"); } \/\/函数功能:输出金字塔 void PrintPyramid(char c) { int i=65 , j...

程序运行时要求用户输入两个正整数m和n,然后程序给出这两个数的最大公...
include<stdio.h> int main(){ int m, n;int m_cup, n_cup, res;printf("请输入两个正整数:\\n");scanf("%d %d", &m, &n);if (m > 0 && n >0){ m_cup = m;n_cup = n;res = m_cup % n_cup;while (res != 0){ m_cup = n_cup;n_cup = res;res = m_cup...

自定义的序列在excel次要排序不能排序怎么解决
方法如下:①点菜单--工具--选项--自定义序列,然后在输入序列里输入:S,M,L,XL,2XL 点添加.再点确定.②选中要排序的表格,点菜单--数据--排序,第一关键字选带有S,M,L...的那列.选好是升序,再点下面确定按钮左边的选项按钮,在自定义排序的次序选刚添加的序列.再确定两次即可....

求办公室文员兼cad制图的实习总结,5000字。
他们必须根据各自用途大致分布在相近的命名区域,名字必须容易选择(比方说二类工业用地我用M2,先把鼠标指向长长的复杂的层列表,键盘输入m就到啦M区了!!) 第三规则:层的命名规则要简单,明了,方便不同专业的人。大家都能够迅速理解,绝对不会误解。 利用以上规则,我设想了以下的命名方式: a、0层不允许放任何东西,...

用户输入M,N值,从1至N开始顺序循环数数,每数到M输出该数值,直至全部输 ...
不知道楼主是不是这个意思,下面的程序是每隔M个数输出一次 include<stdio.h> main(){ int i,j,m,n;j=0;printf("Please input m and n:");scanf("%d %d",&m,&n);for(i=1;i<n+1;i++){ if(j==m){ printf("%d \\n",i);j=0;} j++;} } ...

什么是冯诺·依曼结构?
把需要的程序和数据送至计算机中。 必须具有长期记忆程序、数据、中间结果及最终运算结果的能力。 能够完成各种算术、逻辑运算和数据传送等数据加工处理的能力。 能够按照要求将处理结果输出给用户。 为了完成上述的功能,计算机必须具备五大基本组成部件, 包括: 输入数据和程序的输入设备; 记忆程序和数据的存储器; 完成数...

编写程序计算身高
include <stdio.h>int main(void){ float faHeight,moHeight,chHeight; printf("父亲的身高(cm):"); scanf("%f",&faHeight); printf("母亲的身高(cm):"); scanf("%f",&moHeight); printf("孩子的性别(M\/F):"); getchar(); if(getchar() == 'M'){ ...

编写程序,输入两个正整数m和n,输出m和n之间的素数并统计素数的个数.要...
1、打开visual studio软件,进入菜单“文件”->新建->新建项目。选择windows窗体程序,项目名为“SuShu”。2、在窗体上添加控件:lable控件,text值为“输入一个数,判断是否是素数”;一个textbox控件(tb_inputvalue),用来输入要判断的素数。3、素数设计算法。4、素数设计算法:取消检测区间,提高程序...

c语言程序,要求输出用小于n的自然数表示m的所有方法的个数,其中2<m<...
printf("请输入M:");scanf("%d", &NUM);printf("请输入N:");scanf("%d", &N);table = (int **) malloc (sizeof(int *));for (i=0; i<N+1; i++){ table[i] = (int *) malloc (sizeof(int));} printf("数字拆解\\n");printf("3 = 2+1 = 1+1+1 所以3有三种拆...

兰州市19445127293: 程序要求是输入m,把第1~m个字符平移到字符串的最后,把第m+1到最后的字符移到字符串的前部.我错在哪里 -
爨朱基泰: 错误原因:strlen函数求得的是字符串的实际长度,而下标值只取[0, strlen(str)),前闭后开,所以fun函数中第一个循环i的循环条件时i

兰州市19445127293: C语言,请编写函数fun,其功能是:移动字符串中的内容,移动的规则是把第1~m个字符, -
爨朱基泰: #include <stdio.h>#include <string.h> void fun(int m,int n,char a[80]) { int i;char b[80]; for(i=0;i<n;i++) b[i]=a[(i+m)%n]; for(i=0;i<n;i++) a[i]=b[i]; } void main() { int i,m,n;char a[80]; printf("请输入字符串: "); gets(a);n=strlen(a); printf("请输入正整数m: "); scanf("%d",&m); fun(m,n,a); for(i=0;i<n;i++) printf("%c",a[i]); }

兰州市19445127293: 输入一个字符串和一个整数m,将字符串中的第m个字符开始的全部字符复制到另一个字符串中,输出结果 -
爨朱基泰: private string Set(string str, int m) { if (m { return str.Substring(m); } return null; } 指针 private string Set(string str, int m) { if (m { char *pt=str; pt+=m-1; return *pt } return null; }

兰州市19445127293: 输入一个字符串和一个正整数m,移动字符串中的内容,移动的规则如下: 把从左边起第1到第m个字符平移到字符 -
爨朱基泰: #include #include int main() { char *p,q[200];//按需求这里可以改变的字节长度 int m,n,i,num=0; p=(char*)malloc(200);//动态内存分配 scanf("%s",p); n = strlen(p); scanf("%d",&m); if(m > n)//当m大于n肯定是不行的撒 { printf("m值比字符串...

兰州市19445127293: 输入一个字符串和一个正整数m,移动字符串中的内容,移动的规则如下: 把从右边起第1到第m个字符平移到字符 -
爨朱基泰: #include using namespace std; int main() { char *a=new char[100]; char *b=new char[100]; //100可调,保证大于你输入最长的字符长度即可; int m,i; cin>>a>>m; int k=strlen(a); for(i=0;i b[i]=a[k-m+i]; for(i=0;i b[m+i]=a[i]; cout //移动后的结果在字符...

兰州市19445127293: 编写程序,从键盘输入一个字符串和一个整数m,在原字符串中把字符串尾部的m个字符移动到字符串的头部. -
爨朱基泰: #include#include int main() { char a[1000]; int i; gets(a); scanf("%d", i); while(i--) { a[i] = '*'; } puts(a); }

兰州市19445127293: c语言 输入一个字符串,将该字符串中从第m个字符开始的全部字符复制到另一个字符串 -
爨朱基泰: #include#include //支持strlen()的应用#include //支持exit(1) char *mcopy(char*s ,int m); //函数的定义 void main(void) { char str1[100]; char *str2;int m; printf("请输入你要输入的字符串\n"); gets(str1); printf("请输入你要开始复制字符的...

兰州市19445127293: 编程序,将字符串的第m个开始的字符复制成另一个字符串.主函数中输入字符串及m并输出,被调用函数中完成复制 -
爨朱基泰: 如果是c的话:void gg(char * h,char * i,int j) { int q; for(q=0;q*(i+q)='\0'; return; } main() { char a[20],b[20]; int n; scanf("%s%d",a,&n); gg(a,b,n); printf("%s",b); }

兰州市19445127293: 输入一个字符串 t 和一个正整数 m,将字符串 t 中从第 m 个字符开始的全部字符复制到字符串 s 中, -
爨朱基泰: #include<iostream>#include <string>#include <conio.h> void strmcpy(char *s,char *t,int m); using namespace std; int main() { char buffer[83]={81}; char *s=new char[128]; char *t=new char[128]; int m; cout<<"Input a string:"; s=cgets(buffer); cout<...

兰州市19445127293: 【C++】输入一字符串t和一正整数 m,将字符串t中从第m个字符开始的全部字符复制到字符串s中,再输出字符串s -
爨朱基泰: cin>>t[20];这句就不对,应该是cin>>t或者用gets(t). 后面的处理过程没必要这么麻烦,你愿意写函数也行,不过最好判断一下m和t的长度之间的关系,然后对s进行赋值处理

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网