

uj5u.com熱心網友回復:
第一眼看去,輸入應該改這樣: while((a[j]=getchar())!='\n'){
j++;
}
uj5u.com熱心網友回復:
修改如下,供參考:#include<stdio.h>
int main()
{
int i,j,n,m;
char a[1024],w;
j=0;
scanf("%d",&n);
getchar();
while((a[j]=getchar())!='\n'){
j++;
}
for(i=1;i<=n;i++){
for(m=j-1,w=a[m];m>0;m--){
a[m] = a[m-1];
}
a[m]=w;
}
for(i=0;i<j;i++){
printf("%c",a[i]);
}
return 0;
}
uj5u.com熱心網友回復:
修正樓上的,第22行增加printf("\n"); :#include<stdio.h>
int main()
{
int i,j,n,m;
char a[1024],w;
j=0;
scanf("%d",&n);
getchar();
while((a[j]=getchar())!='\n'){
j++;
}
for(i=1;i<=n;i++){
for(m=j-1,w=a[m];m>0;m--){
a[m] = a[m-1];
}
a[m]=w;
}
for(i=0;i<j;i++){
printf("%c",a[i]);
}
printf("\n");
return 0;
}
uj5u.com熱心網友回復:
額,好像不行,心態崩了,好難啊
uj5u.com熱心網友回復:
什么樣的錯誤提示?uj5u.com熱心網友回復:
改這樣試試:#include<stdio.h>
#include<string.h>
int main()
{
int i,len,n,m;
char a[1001],w;
scanf("%d",&n);
getchar();
gets(a);
len = strlen(a);
for(i=1;i<=n;i++){
for(m=len-1,w=a[m];m>0;m--){
a[m] = a[m-1];
}
a[m]=w;
}
puts(a);
return 0;
}
uj5u.com熱心網友回復:
#include <stdio.h>
#include<string.h>
int main(int argc,char* argv[])
{
int i,len,n,k;
char str[1001],s[1001] ;
{
scanf("%d%s",&n,str);
len=strlen(str);
k=n%len; //>=len的移動是重復的
/*題目所要求的移動是一種回圈移動,如果把字串首尾相連的話,就是起點位置的移動,作為字串,以k為分界前后對換即可實作*/
strncpy(s,str+len-k,k);
strncpy(s+k,str,len-k);
s[len]='\0' ;
printf("%s\n",s);
}
return 0 ;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/274573.html
標籤:C語言
