鱼C论坛

 找回密码
 立即注册
查看: 2221|回复: 7

为何只能打印后半部分

[复制链接]
发表于 2016-7-9 07:10:15 | 显示全部楼层 |阅读模式
10鱼币
#include<stdio.h>
#include<conio.h>
char capital='X'&&'Z';

float num;
int main(){
        scanf("%c%f%c%f",&capital,&num,&capital,&num);

        printf("%c%f%c%f\n",capital,num,capital,num);
getch();
}

这个程序目的是输入两个数X和Z(不按顺序),每个字母后面各一个实数,
然后字母原样打印,实数打印出浮点型
比如输入X30.5Z2按我想法是打印出X30.500000Z2.000000
但打印结果却是两次打印后半段的浮点型Z2.000000Z2.000000
请高手帮忙改下程序,谢谢~
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-9 12:26:03 | 显示全部楼层
donkkong 发表于 2016-7-9 10:26
因为输入第二次值的时候会把前面的值覆盖,所以只会显示后面的值,同一个内存地址只能保存一个值,新的会 ...

那我输入Z2X30.5希望把X及后面实数移到前面打印出X30.500000Z2.000000呢?也就是不管怎样输入,把X及X后面的数打印在前面(要具有通用性哦)
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-9 18:00:32 | 显示全部楼层
donkkong 发表于 2016-7-9 13:54
将printf("%c%f%c%f\n",capital1,num1,capital2,num2);更改为printf("%c%f%c%f\n",capital2,num2,capital1, ...

改了后只是将输入的两部分互换输出,我是要不论输入X30.5Z2还是Z2X30.5结果都输出X30.500000Z2.000000
也就是让X及后面的实数放前面
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2016-7-10 12:22:30 | 显示全部楼层
本帖最后由 晚起鸟儿 于 2016-7-11 14:41 编辑
donkkong 发表于 2016-7-9 07:10
如果你的意思是需要比较后再输出,加入if语句就可以,希望这次没有理解错,如果还需要改些什么,可以告诉我 ...


自己解决了,还是要谢谢您耐心帮助,而且您让我明白了第二次输入的把第一次的覆盖了,以下为正确代码:
#include<stdio.h>
#include<conio.h>
char capital1,capital2;

float num1, num2;
int main(){
  scanf("%c%f%c%f",&capital1,&num1,&capital2,&num2);

if(capital1=='X')
{
  printf("%c%f%c%f\n",capital1,num1,capital2,num2);  
}
else if(capital1=='Z')
{
  printf("%c%f%c%f\n",capital2,num2,capital1,num1);
}
getch();
}
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-10-14 02:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表