【发布时间】:2015-09-18 06:46:04
【问题描述】:
#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 并执行 while 循环。
【问题讨论】:
-
你看过编译器发出的警告了吗?
-
在外循环中使循环 = 0。
-
scanf("%s", &cont)应该是scanf("%c", &cont)和total和gtotal在没有被初始化的情况下使用。你用什么编译器? -
在本站发布代码之前请修正缩进。
标签: c loops while-loop do-while