C中所有3或5的倍数低于10的代码?

时间:2018-03-17 14:56:05

标签: c

我刚开始学习C.我正在编写如下代码:

#include <stdio.h>
#include <conio.h>

void main()
{
    int i, s = 0;
    clrscr();
    for(i = 1 ; i <= 5 ; i++)
    {
        if ((i % 3 == 0) || (i % 5 == 0))
        {
            printf("%d\n", &i);
            s = s + i;
        }
    }
    printf("sum is: %d\n", &s);
    getch();
}

但我在输出方面遇到麻烦,就是这样:

My output

5 个答案:

答案 0 :(得分:3)

地址运算符&是不必要的:

printf("%d\n", i);

printf("sum is: %d\n", s);

答案 1 :(得分:1)

更正以下代码:

printf("%d\n", &i);

为:

printf("%d\n", i);

您无需使用&地址运算符。

答案 2 :(得分:0)

printf("%d\n",&i);应该是printf("%d\n",i);&s应为s请尝试以下代码......

#include<stdio.h>
#include<conio.h>
void main()
{
 int i,s=0;
 clrscr();
  for(i=1;i<=5;i++){

   if((i%3==0)||(i%5==0)){
     printf("%d\n",i);
     s=s+i;
   }
  }
 printf("sum is:%d\n",s);
 getch();
}

答案 3 :(得分:0)

您可以阅读如何使用printf here

简而言之printf不需要变量的地址,而是需要它的值 - 即 与scanf相反。

删除&运算符以使用printf,如:

printf("%d\n",i);

printf("sum is:%d\n",s);

请参阅:

#include<stdio.h>
#include<conio.h>

int main(void)
{
    int i,s=0;
    clrscr();

    for(i=1; i<=5; i++)
    {
        if((i%3==0)||(i%5==0))
        {
            printf("%d\n",i);
            s=s+i;
        }
    }

    printf("sum is:%d\n",s);

    getch();

    return 0;
}

输出:

3                                                                                                                                            
5                                                                                                                                            
sum is:8  

其他改进是遵守C标准,并将main声明为int main(void)而不是void main(),并从程序中返回一个值。

答案 4 :(得分:0)

#include <stdio.h>

main() {
    int i;
    printf("the multiples of 3 or 5 are :");
    for (i = 0; i <= 10; i++) {
        if ((i % 3 = 0) || (i % 5 = 0)) print("%d\n", i);
        else continue;
    }
}