C 当没有为名字输入值时,如何使循环中断
我不能让我的代码在名字处中断,它只有在我将所有值留空后才会中断C 当没有为名字输入值时,如何使循环中断,c,loops,for-loop,if-statement,break,C,Loops,For Loop,If Statement,Break,我不能让我的代码在名字处中断,它只有在我将所有值留空后才会中断 #include <stdio.h> #include <stdbool.h> #include <string.h> void main(void) { //Start main function // Declare variables char charTempArray[50] = ""; char charFirstNames[50][50]; ch
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
void main(void) { //Start main function
// Declare variables
char charTempArray[50] = "";
char charFirstNames[50][50];
char charLastNames[50][50];
char charTempSal[10] = "";
int intSalaries[50];
int intSalarySum = 0;
int intSalaryAvg = 0;
int intSalaryTop = 0;
int intSalaryBot = 9999999999;
int intArraySize = 0;
int i = 0;
int intCharConv = 0;
//User input to build the arrays
for(i = 0; i < 50; ++i)
if (charFirstNames[i - 1][0] != '\0') {
printf("Please enter Employees first name.\n ");
gets(charTempArray);
strcpy(charFirstNames[i], charTempArray);
printf("Please enter Employees last name.\n ");
gets(charTempArray);
strcpy(charLastNames[i], charTempArray);
printf("Please enter Employees salary.\n ");
gets(charTempSal);
intCharConv = atoi(charTempSal);
intSalaries[i] = intCharConv;
intArraySize = i;
}
else {
break;
}
首先,当
i=0
时,您的if
将尝试访问数组边界之外的元素。其次,您应该在获得名字后立即测试空名字:
for(i = 0; i < 50; ++i)
{
printf("Please enter Employees first name.\n ");
gets(charTempArray);
strcpy(charFirstNames[i], charTempArray);
if(charTempArray[0] == 0)
break;
printf("Please enter Employees last name.\n ");
gets(charTempArray);
strcpy(charLastNames[i], charTempArray);
printf("Please enter Employees salary.\n ");
gets(charTempSal);
intCharConv = atoi(charTempSal);
intSalaries[i] = intCharConv;
intArraySize = i;
}
(i=0;i<50;++i)的
{
printf(“请输入员工的名字。\n”);
获取(charTempArray);
strcpy(charFirstNames[i],charTempArray);
if(charTempArray[0]==0)
中断;
printf(“请输入员工姓氏。\n”);
获取(charTempArray);
strcpy(charLastNames[i],charTempArray);
printf(“请输入员工工资。\n”);
获取(ChartTempsal);
intCharConv=atoi(图表时间);
intSalaries[i]=intCharConv;
intArraySize=i;
}
我尝试了这个方法,但是我忘记了支撑for循环,在循环外有一个中断,所以它不起作用。谢谢您。
for(i = 0; i < 50; ++i)
{
printf("Please enter Employees first name.\n ");
gets(charTempArray);
strcpy(charFirstNames[i], charTempArray);
if(charTempArray[0] == 0)
break;
printf("Please enter Employees last name.\n ");
gets(charTempArray);
strcpy(charLastNames[i], charTempArray);
printf("Please enter Employees salary.\n ");
gets(charTempSal);
intCharConv = atoi(charTempSal);
intSalaries[i] = intCharConv;
intArraySize = i;
}