我想用while
循环来分割n
数字并打印商。例如,如果用户输入n = 3,程序将要求输入3个数字。假设用户输入了2,2和3.程序然后执行以下操作:2/2/3,然后打印答案(即0.3333)。我有一个程序,使用while
循环完美地进行加法,除法和乘法运算,但在除法中,它将输入的所有数字(1/2/2/3)除1。我如何解决它?下面是代码:while while循环
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main(void)
{
int n, k=0;
float total=1, number;
printf("\nEnter the number of elements you want to divide:");
scanf("%d",&n);
printf("Please enter %d numbers one by one: \n",n);
while(k<n)
{
scanf("%f",&number);
total=number/number;
k=k+1;
}
printf("Quotient of %d numbers = %f \n",n,total);
_getch();
}
这一行:float total = 1,应该是float total = 1.0f;首先是因为1不是浮点数,1.0会默认加倍。 – user3629249 2014-10-27 23:10:03
使用scanf()时总是检查返回码(在这种情况下应该是1)以确保实际读取参数。在第一次调用scanf()之后,应该有一个''作为format参数的第一个字符,这样就可以跳过空格(如'\ n')。 – user3629249 2014-10-27 23:12:13
这一行:total = number/number;该代码将自己分割一个数字,所以很自然,结果将始终为1.根据您的意见,您希望将每个数字除以前面的数字。你的代码需要另一个变量'oldNumber'(初始化这个数字为什么?),然后执行总数+ = oldNumber/number;如果没有“+ =”,那么总价值不是分割操作的总和,而只是最新分割的结果。初始化总数为1将导致错误的结果值,它应该是总= 1.0f; – user3629249 2014-10-27 23:17:44