2015-11-27 2 views
-2

Кто-то может выразить меня, почему мой код не работает?rero-length ms_printf формат строки

printf("Please enter a number for 7 boom game\n"); 
    scanf("%d",&n1); 
    printf("[")  
    if(n1<7) 
    printf(""); 
    else if (n1 >=7) 
    printf("7") 

    for (i=1;i<=n1;i++) 
    { 

    while((i!=0)&&(n1>=i)&&(i!=7)) 
    { 
    if(i%10==7) 
    printf(",%d",i); 
    else if(i%7==0) 
    printf(",%d",i); 
    else 
    { 
    y1=i; 
    while(y1!=0) 
    { 
    y1=y1/10; 
    k++; 

    } 
    for(j=0;j<=k;j++) 
    { 
    div=div*10; 

    } 

    if((y1)%div==7) 
    printf(",%d",i); 

    } 

    i++; 

    } 
    } 

Мой выход должен быть: все числа, которые содержат 7, как на выходе 20 [7,14,17], а количество должно быть в порядке?

+1

Absense определения функции и определения переменных? – MikeCAT

+0

И отсутствие точки с запятой после 'printf (" [")' и 'printf (" 7 ")'. – MikeCAT

+0

, а также функция 'printf (" ") с нулевой длиной – Cherubim

ответ

0

Код для поиска встроенного 7 s неверен. Например, когда вы к этому if, y1 всегда будет 0:

if((y1)%div==7) 
    printf(",%d",i); 
} 

Чтобы найти встроенные 7 S вы могли бы сделать, как это вместо:

y1 = i; 
do { 
    if (y1%10 == 7) { 
     // Last digit in y1 is 7 
     printf(",%d",i); 
     break; 
    } 
    y1 = y1/10; // Remove last digit in y1 
} while (y1 > 0) 
+0

Большое спасибо klas lindbäck –

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