2013-04-14 4 views
-1

Я работаю над этим в течение двух дней без всякой удачи. Мне нужна моя программа для печати диапазона, заданного пользователем, и отображения всех простых чисел в диапазоне. Все непустые числа должны быть распечатаны как «-». Мне нужно иметь 10 номеров в строке, а затем | вместе с последним номером в строке. Это будет выглядеть примерно так:Печать всех номеров в диапазоне показывает только простые числа

71 - 73 - - - - - 79 - | 80

Я знаю, что мне нужно использовать printf, но я не могу понять, куда положить инструкцию печати или как остановить вывод printf с 10 номеров перед началом новой строки. Кроме того, я не могу понять, как сделать нечетные числа печатными буквами как «-» при использовании printf. Каждый раз, когда я пытаюсь, я получаю сообщение об ошибке. Вот код, после того, как пользователь вводит свои номера:

for(d=start;d<end;d++) { 
     b=0; 
     for(c=1;c<=d;c++){ 
      if(d%c==0) 
       b=b+1; 
     } 
     if(b==2){ 
      System.out.printf("%4d", d); 
      //prints prime numbers with the spacing required 
      primes=primes+1; 
     } 
    } 
+0

и это выводит то, что именно? – Woot4Moo

ответ

0

Фигурного это вскоре после того, как я задал вопрос, вот код, который я использовано:

for(d=start;d<=end;d++) { 
     b=0; 
     for(c=1;c<=d;c++){ 
      if(d%c==0) 
       b=b+1; 
     } 
     if(b==2){ 
      primes=primes+1; 
      if(d!=start){ 
       System.out.printf("%4d", d); 
      } 
     }else{ 
      if(d!=start){ 
       System.out.printf(" -"); 
      } 
     } 
     if(d%10==0&&d!=start){ 
      System.out.printf(" | "); 
      System.out.printf("%4d", d); 
      System.out.println(); 
     } 
0

Одним из вариантов было бы сделать счетчик, и когда счетчик% 10 == 0, то вы напечатать новую строку.

0

Я предлагаю вам разбить проблему на более мелкие подзадачи. Например, распечатайте список номеров праймеров и не волнуйтесь о формате или распечатайте номера в заданном диапазоне с 10 номерами в строке. После того, как вы выясните, как сделать каждый из них отдельно, затем попытайтесь их объединить.

-1

Compile: НКА prime Run (для диапазона 1-200): ./a.out 1 200

#include<stdio.h> 
#include<math.h> 
int isPrime(int n){ 
    if(n==1) return 0; 
    int i=2; 
    while(i<=sqrt(n)) 
     if(n%i++==0) 
      return 0; 
    return 1; 
} 
int main(int argc, char *argv[]){ 
    int a,b,count; 
    if(argc<3) 
     return 0; 
    a=atoi(argv[1]); 
    b=atoi(argv[2]); 
    count=1; 
    for(;a<=b;a++){ 
     if(isPrime(a)) printf("%d ",a); 
     else printf("- "); 
     if(count++==10){ 
      printf("| %d\n",a); 
      count=1; 
     } 
    } 
    return 0; 
} 
+0

Неверный lenguage? –

Смежные вопросы