gpt4 book ai didi

c - 如何在 while 循环内重置 do while 循环?

转载 作者:行者123 更新时间:2023-11-30 20:37:26 24 4
gpt4 key购买 nike

#include <stdio.h>

int main()
{

int comp,loop=1,tcomp=0;
char cont;
char name[50];
float donate=0,total,gtotal;

printf("\nGot representative? [Y to continue]: ");
scanf("%s", &cont);

while(cont=='y'){
printf("\nRepresentative name : ");
scanf("%s", &name);
printf("How many companies? : ");
scanf("%d", &comp);
tcomp+=comp;
do{
printf("Enter amount of donation : ");
scanf("%f", &donate); loop++;
total+=donate;}
while(loop<=comp);
printf("%s : %.2f\n", name, total);

printf("\nGot representative? [Y to continue]: ");
scanf("%s", &cont);}


printf("\nTotal Representative : %d", tcomp);
gtotal+=total;
printf("\nTotal Donations : %.2f\n", gtotal);
}

当前输出:

Got representative? [Y to continue]: y

Representative name : ABC

How many companies? : 3

Enter amount of donation : 1

Enter amount of donation : 2

Enter amount of donation : 3

ABC : 6.00

Got representative? [Y to continue]: y

Representative name : ZXC

How many companies? : 3

Enter amount of donation : 1

ZXC : 7.00

正如您在这里所看到的,第二个循环没有重置,它正在对第一个循环的数字求和。我该如何纠正这个问题?如何使循环每次都重新开始? p/s:我被特别要求使用 while 和 do while 循环。

最佳答案

位于更正后的代码下方。

int main()
{

int comp,loop=1,tcomp=0;
char cont;
char name[50];
float donate=0,total=0,gtotal=0;

printf("\nGot representative? [Y to continue]: ");
scanf("%c", &cont);

while(cont=='y')
{
printf("\nRepresentative name : ");
scanf("%s", name);
printf("How many companies? : ");
scanf("%d", &comp);
tcomp+=comp;
loop=0;
total=0;
do
{
printf("Enter amount of donation : ");
scanf("%f", &donate); loop++;
total+=donate;
}
while(loop<comp);

printf("%s : %.2f\n", name, total);

printf("\nGot representative? [Y to continue]: ");
scanf("%c", &cont);
gtotal+=total;
}


printf("\nTotal Representative : %d", tcomp);
printf("\nTotal Donations : %.2f\n", gtotal);

return 0;
}

如您所见:

  1. 您必须在每次询问金额的循环之前重置loop变量。
  2. 您必须在该循环之前重置total
  3. 对于第一个 while 循环的每次迭代,您必须保存到 gtotal
  4. 您必须使用 %c 而不是 %s 来获取单个字符:scanf("%c", &cont);

关于c - 如何在 while 循环内重置 do while 循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32645548/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com