C语言求教
1)求下面代码的结果#include"stdio.h"#include<string.h>voidmove(char*str,intn){chartemp;inti;te...
1) 求下面代码的结果
#include"stdio.h"
#include <string.h>
void 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);
z=strlen(s);
for(i=1; i<=n; i++)
move(s,z);
printf("%s\n",s);
}
求输出结果 展开
#include"stdio.h"
#include <string.h>
void 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);
z=strlen(s);
for(i=1; i<=n; i++)
move(s,z);
printf("%s\n",s);
}
求输出结果 展开
3个回答
展开全部
一楼考试考多了吧,这种写法是绝对不累赘的,而是必要的,如果在条件里把 == 0.0作为循环条件的话你真的会发现成为死循环的,C语言中有float,又有double,它们都被称作浮点数,它们是无法准确保存小数的,它们各有自己的精度,您可以考虑写一个循环,比如:
double a = 0.01;for( i=0; i<20; i++ ) printf( "%.20lf", a + 0.01 );你会发现显示出来的不只是一个0.01,0.02,在显示出来的小数的最后精度是完全无法控制的,所以变量中对于浮点数是否相等不能直接用 == ,而是要判断它们的差是不是在允许精度之内,就是说,abs( x ) < 1e-N,这个N越大,精度要求越高,就是这样了,希望对您可以有所帮助
double a = 0.01;for( i=0; i<20; i++ ) printf( "%.20lf", a + 0.01 );你会发现显示出来的不只是一个0.01,0.02,在显示出来的小数的最后精度是完全无法控制的,所以变量中对于浮点数是否相等不能直接用 == ,而是要判断它们的差是不是在允许精度之内,就是说,abs( x ) < 1e-N,这个N越大,精度要求越高,就是这样了,希望对您可以有所帮助
追问
问题是试卷上这个题目这样写 我要怎么回答呢
展开全部
循环移位程序
比如:
输入:
2
abcdef
则,输出:
efabcd
比如:
输入:
2
abcdef
则,输出:
efabcd
追问
如果输入 10 9 是不是输出9?
追答
我刚才大意了,要注意输入的格式,以逗号分隔。
输入10,9
输出为9
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询