
这是因为程序中输出数据的格式符指定错误。因为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值等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)