2013-11-18 3 views
1

Я делаю IF-инструкцию, где я хочу, чтобы что-то произошло, если вставленное число заканчивается нулем. Ниже не работает:Как получить последний символ вычисления в C?

#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 
    int year; 

    printf("Skriv in ditt födelseår\n"); 
    scanf("%d", &year); printf("Du är %d", 2013 - year); printf(" år gammal"); 

    if (2013 - year.endsWith('0')) { 
     printf("Grattis, du fyller jämnt iår!\n"); 
    } 



    return 0; 

} 

Итак, если результат 2003 года - года (год набирается пользователем) заканчивается нулем, я хочу, чтобы напечатать что-нибудь. Как мне заставить работать?

+0

Честно говоря, я не уверен, я только начал с C. Есть ли лучший способ? – user3004300

ответ

9

Смотрите ли результат можно разделить на 10 без остатка:

if ((2013 - year) % 10 == 0) { 
    printf("Grattis, du fyller jämnt iår!\n"); 
} 
+0

Спасибо, что решил! – user3004300

+3

@ user3004300: добро пожаловать в Stackoverflow. Вскоре прочитайте страницу [About] (http://stackoverflow.com/about). На данный момент, пожалуйста, прочитайте [Помощь! Кто-то ответил на мой вопрос!] (Http://meta.stackoverflow.com/help/someone-answers). – usr2564301

+0

@ user3004300 да, пожалуйста, примите этот ответ, нажав соответствующую кнопку, чтобы почитать усилия Фрериха Раава, чтобы ответить на ваш вопрос. – PhillipD

0

Вы читаете год от консольного ввода и вы хотите что-то, если входные концы с 0, чем вы не должны проверить (2013 год). Предположим, вы входите в 2013 (что делает не заканчивается с 0)

if (2013 - year.endsWith('0')) { 
     printf("Grattis, du fyller jämnt iår!\n"); 
    } 

напечатает сообщение, вам там. Потому что вы проверяете разницу между годами.

Я думаю, вам нужно переписать условие, как

if (year.endsWith('0')) { 
      printf("Grattis, du fyller jämnt iår!\n"); 
    } 

ИЛИ

if (year % 10 == 0) { 
    printf("Grattis, du fyller jämnt iår!\n"); 
} 

Какой бы вы предпочитаете. Я не вижу смысла вычитать год с 2013 года.

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