c语言 int a; float b; double c; scanf("%d,%lf,%lf",&a,&b,&c);b和c无法获取正确的输入值,哪里出错

c语言 int a; float b; double c; scanf("%d,%lf,%lf",&a,&b,&c);b和c无法获取正确的输入值,哪里出错,第1张

这是因为程序中输出数据的格式符指定错误。因为float型的输出必须%f而不能使用%lf格式符。,还有就是要注意输入数据时,要用英文的逗号分隔不同的数字:

关于printf格式符更多的使用说明,见下述:

详见:网页链接

不是只取了a的值就结束了 而是第二个scanf取到了一个' '(空格)

要理解这个你需要一点相关的知识

实际上当你输入完a后你按回车键确认输入的时候产生了一个'\n'

前一个scanf取走a后在缓冲区内其实还有一个'\n'存在

于是第二个scanf就取走了 结果看取来就像是只去走了a的值一样 要想你的程序正常 只要在printf("please putin your card number:");

scanf("%l",&a);

printf("please putin your cardnumber again:");

scanf("%l",&b);

中间加一个getchar();取走'\n'就可以了

printf("please putin your card number:");

scanf("%l",&a);

getchar();

printf("please putin your cardnumber again:");

scanf("%l",&b);为什么只取了a的值就结束

#include

//为了方便返回,使用结构体存储最大值最小值

typedef struct {

int Max;

int Min;

}MaxMin;

//函数参数array:数组,length:数组长度。

//这里其实可以把最大值最小值作为指针传进去的。

MaxMin GetMaxMin(int array, int length)

{

int i;

MaxMin maxMin;

if (length <= 0)

return maxMin;

//初始化最大值和最小值为数组第一个数

maxMinMax = array[0];

maxMinMin = array[0];

for (i = 0; i < length; i++) {

if (array[i] >= maxMinMax)

maxMinMax = array[i]; //比当前最大值大,修改最大值

if (array[i] <= maxMinMin)

maxMinMin = array[i]; //比当前最小值小,修改最小值

}

return maxMin;

}

//主函数测试

int main() {

int length;

int i;

int array;

printf("input length of array:");

scanf("%d", &length);

array = (int )malloc(sizeof(int)length);

for (i = 0; i < length; i++) {

printf("input data of array(index %d):", i + 1);

scanf("%d", array + i);

}

MaxMin maxMin = GetMaxMin(array, length);

printf("Max:%d,Min:%d", maxMinMax, maxMinMin);

return 0;

}

以上就是关于c语言 int a; float b; double c; scanf("%d,%lf,%lf",&a,&b,&c);b和c无法获取正确的输入值,哪里出错全部的内容,包括:c语言 int a; float b; double c; scanf("%d,%lf,%lf",&a,&b,&c);b和c无法获取正确的输入值,哪里出错、c语言中怎么使用scanf函数来获得变量值!!、用C语言编写程序找出输入的n个数字中的最大值和最小值。要求程序运行时先获取n值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9509687.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存