c语言求助:交换奇偶位哪错了
答案:2 悬赏:0 手机版
解决时间 2021-01-25 21:52
- 提问者网友:杀手的诗
- 2021-01-24 20:55
#include "stdio.h"
#include "string.h"
int main(int argc, char* argv[])
{
int n;
scanf("%d",&n);
while(n--){
int i,x;
char c[50],t;
gets(c);
x=strlen(c);
for(i=0;i t=c[i];
c[i]=c[i+1];
c[i+1]=t;
}
puts(c);
}
return 0;
}
最佳答案
- 五星知识达人网友:一把行者刀
- 2021-01-24 22:26
#include "stdio.h"
#include "string.h"
int main(int argc, char* argv[])
{
int n;
scanf("%d", &n);
while (n--){
int i, x;
char c[50], t;
gets(c);
x = strlen(c);
// 这里感觉应该用 i + 1 < x
// 不过这个要看你怎么处理奇数个字符的情况
for (i = 0; i + 1 < x; i = i + 2){
t = c[i];
c[i] = c[i + 1];
c[i + 1] = t;
}
puts(c);
}
return 0;
}
全部回答
1.printf("the last 3 numbers is %d.\n",1/a); 输出的时候会有问题,1/a 他不是整型的 , 要 printf("the last 3 numbers is %f.\n",1/a);
2.你这个程序只能算a的n次方,而不是a的n次方的最后3位数。
3.像你把a定义为整型的,数字大的话会产生越界。int也就有2个字节。
4.要算最后3位的话,比如4321这个四位数。4321/1000=4, 4321%1000=321
5.你的算法,最后求出的a的n次方的值要判断下是否大于999,即
if(a>1000)
else
6.要多想
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯