因此我们被要求创建一个程序,使用户能够从1-6中选择关于矩阵运算的选项。在每个用户的输入中,我们需要检查此输入是否有资格进行操作(程序应接受INTEGERS或FLOATING POINT,正面或负面)。如果不满足上述条件,我们将再次要求用户输入另一个值,直到用户正确输入正确的输入。
这是我的程序片段:
printf("[A] You chose Matrix Addition\n");
printf("How many columns would you like?\n");
fgets(rows,sizeof(rows),stdin);
r=atoi(rows);
printf("How many rows would you like?\n");
fgets(columns,sizeof(columns),stdin);
c=atoi(columns);
printf("Enter the elements of first matrix\n");
for (e = 0; e < c; e++) {
for (f = 0; f < r; f++) {
printf("Element [%d][%d]:\n",e,f);
fgets(elem1,sizeof(elem1),stdin);
a=atof(elem1);
first[e][f]=a;
}
}
printf("Enter the elements of second matrix\n");
for (e = 0; e < c; e++) {
for (f = 0; f < r; f++) {
printf("Element [%d][%d]:\n",e,f);
fgets(elem2,sizeof(elem2),stdin);
b=atof(elem2);
second[e][f]=b;
}
}
printf("Sum of entered matrices:-\n");
for (e = 0; e < c; e++) {
for (f = 0 ; f < r; f++) {
sum[e][f] = first[e][f] + second[e][f];
printf("%.3f\t", sum[e][f]);
}
printf("\n");
}
我的问题是,我该怎么做才能(1)检查输入是否符合条件,以及(2)如何让用户再次输入另一个。
*我们不允许使用scanf和其他&#34;不安全的&#34;字符串函数,如puts,gets,strlen等。 *上述程序仅适用于整数,并不能判断用户的输入是否无效。我怎么做?感谢。
答案 0 :(得分:0)
你可以这样做:
// I am providing just hint..
do {
printf("Enter Element [%d][%d]:\n",e,f);
fgets(elem1,sizeof(elem1),stdin);
a=atof(elem1);
}while(!notDesiredValue(a));
现在自己实施notDesiredValue(flaot number)
以符合您所希望的条件......是否有帮助......