永发信息网

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楼网友:毛毛
  • 2021-01-24 23:35
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.要多想
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯