难道这个问题真的没有人能够解决?

来源:百度知道 编辑:UC知道 时间:2024/05/13 14:03:01
我想输入3个不同类型的变量然后输出,int 型的没问题的,后面的double和char 类型的变量输出来的结果非常怪异,应该怎么改正?
#include "stdio.h"
void main()
{
int a;
double b;
char c;
void display(int a);
void display(double d);
void display(char c);
printf("请输入一个整数\n");
scanf("%d",&a);
printf("请输入一个浮点数\n");
scanf("%f",&b);
printf("请输入一个字符\n");
scanf("%c\n",&c);
display(a);
display(b);
display(c);
}
void display(int a)
{
printf("%d\n",a);
}
void display(double d)
{
printf("%f\n",d);
}
void display(char c)
{
printf("%c\n",c);
}

void display(int a);
void display(double d);
void display(char c);
放到void main() 上面也是不行,简直太怪异了,看来无法解决了,我估计是C编译器有BUG,我打算上报微软公司了

printf("请输入一个整数\n");
scanf("%d",&a);
printf("请输入一个浮点数\n");
scanf("%f",&b);
printf("请输入一个字符\n");
scanf("%c\n",&c);

以上几行有误:
scanf("%lf",&b);定义double请用%lf;
scanf(" %c",&c); 请在%c前面加上一个空格,因为你输变量b时候键入了一个回车,%c会接收你这个回车,在前面加一个空格就好,或者你在 scanf("%lf",&b);之后加上这样一行:getchar();另外,请不要在scanf里面加\n,这又不是在printf里.还有你后面输出的时候,请用%lf输出.另外,不要用同样的函数名,下面调好的程序:
#include<stdio.h>
void main()
{
void display1(int a);
void display2(double d);
void display3(char c);
int a;
double b;
char c;
printf("请输入一个整数\n");
scanf("%d",&a);
printf("请输入一个浮点数\n");
scanf("%lf",&b);
getchar();
printf("请输入一个字符\n");
scanf("%c",&c);/*请不要写上\n*/
display1(a)/*请不要用同样的函数名*/
display2(b);
display3