这是在C中,我正在使用Dev-C ++(但保存在c扩展名中),并使用Dev-C ++中的编译器进行编译。编译日志中没有显示错误或警告。此程序是“数组” “,”for“,”do-while“运动。
对于任何短语错误,我的母语不是英语,这是我在本网站的第一个问题... 如果您需要任何进一步的信息,请询问(但我可能不会快速回答)。
#include <stdio.h>
#include <stdlib.h>
main(){
int num[10];
int cont=0;
for (cont=0;cont==9;cont++){
num[cont]=(cont+1)*3;
}
printf("\nThis programs show the multiplication table of the number 3\n Digit the number you want \n To exit input -9... \n");
do{
cont=0;
scanf("%d",&cont);
if (cont>10 || cont<1){
if(cont!= -9){
printf("You digitted a not valid number");
}
}
printf("The number 3 multiplied by %d is equal to: %d \n\n",cont,num[cont-1]);
}while(cont!=(-9));
getch();
}
ps:请不要太复杂的答案,我是非常非常新手。再次抱歉我的语言错误。
答案 0 :(得分:2)
for (cont=0;cont==9;cont++){
for循环的第二部分是持续条件,而不是结束条件。基本上,循环继续,而第二部分为真。
所以,因为cont从0开始,它只在cont == 9
时才会继续...它从未真正运行过。请尝试改为cont <= 9
,当它小于或等于9时,它会移动。
答案 1 :(得分:2)
您的问题似乎出现在以下代码行中:
for (cont=0;cont==9;cont++){
for()的语法是:for(starting_with; while_true; do_each_loop) 因此,当你说cont == 9时,这意味着只有当cont等于9时,循环才会运行。你可能需要像cont&lt; = 9这样的东西。
答案 2 :(得分:0)
一些问题
for
循环的测试和限制是错误的。
int num[10];
for (cont=0; cont<10; cont++) {
// or even better
#define N 10
int num[N];
for (cont=0; cont<N; cont++) {
...
if (cont> N || cont<1){
代码使用无效索引访问数组,添加else
if (cont>10 || cont<1) {
if(cont!= -9){
printf("You digitted a not valid number");
}
}
else {
printf("The number 3 multiplied by %d is equal to: %d \n\n",cont,num[cont-1]);
}
代码应检查scanf()
的返回值。
if (scanf("%d",&cont) != 1) break;
次要:非便携式main()
签名
// main(){
int main(void) {