C语言程序计算题

在以下程序运行后输入:3,abcde <回车> ,则输出结果是:

#include<string.h>
move (char *str,int n)
{char temp; int i;
temp=str[n-1];
for(i=n-1;i--)str[i]=str[i-1];
str[0]temp;
}
main()
{char s[50]; int n,i,z;
scanf("%d,%s",&n,s);
z=strlen(s);
for(i+1;i<=n;i++)move(s,z);
printf("%\n",s);
}

在以下程序运行后输入:3,abcde <回车> ,则输出结果是:

你上面有比较多的错误,但我看了下程序,这个
程序的目的我也大概知道了,
move()的目的就是将字符串的最后一个元素移动到字符串的第一个元素,其他元素一次向后移动一位
比如对字符串abcdefg执行一次move()之后的结果
为gabcdef
我修改了你的代码,现在可以运行了,
#include<stdio.h>
#include<string.h>
move (char *str,int n)
{
char temp;
int i;
temp=str[n-1];
for(i=n-1;i>0;i--)str[i]=str[i-1];
str[0]=temp;
}
main()
{
char s[50];
int n,i,z;
//scanf("%d,%s",&n,s);
scanf("%d\n",&n);
gets(s);
z=strlen(s);
for(i=1;i<=n;i++)move(s,z);
printf("%s ",s);
}
当输入3 abcde后输出cdeab;
因为是执行三次move()循环操作
第一次循环后变成eabcd
第二次循环后变成deabc
第三次循环后变成cdeab
另外,你没有必要输入逗号,你只要输入空格或回车就可以将输入n的值和字符串分开了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-11-10
c
第2个回答  2007-11-10
我运行了一下是eabcd
第3个回答  2007-11-10
你这里有错误!你应该检查一下才放上来吗!!!
第4个回答  2007-11-10
4楼的分析很好``很对```
相似回答
大家正在搜