מדובר בכלים של שפות שונות
printf ו-scanf הן פונקציות ספריה של שפת C, ואילו cout ו-cin הן מחלקות של שפת ++C. עליך לבחור במה להשתמש לפי השפה בה אתה כותב. לגבי השאלה השניה - יש הבדל מהותי בשימוש בסימנים. הסימן %, בהקשר בו הזכרת אותו, הוא סמן של מחרוזת הפורמט - קרי, הוא עוזר לפונקציה לדעת איזה סוג מידע אתה שולח אליה (או מצפה לקבל ממנה, במקרה של scanf). ה-% לא מגיע לבד, הוא מגיע תמיד עם עוד תוים שנותנים מידע לפונקציה על סוג המשתנה שאתה שולח אליה/רוצה לקבל ממנה. מידע לגבי הסוגים האפשריים אפשר למצוא בתיעוד של הספריה (או בתפריט העזרה, אם אתה משתמש בקומפיילר של בורלנד). כשה-% מופיע בהקשר אחר, לא בין מרכאות, הוא משמש כאופרטור המודלו - הוא מחזיר את שארית החלוקה של שני האופרנדים שלו. הסימן & מציין שאתה רוצה לשלוח את הכתובת של המשתנה לפונקציה, ולא את הערך שלו. כשאתה רוצה להדפיס את תוכנו של משתנה אתה שולח לפונקציה את הערך שלו, אבל כשאתה רוצה לקלוט לתוכו - אין לך כל שימוש בערך הנוכחי שלו, אתה רוצה בסה"כ להגיד לפונקציה איפה לאכסן את המידע, ולכן אתה שולח אליה את הכתובת של המשתנה בעזרת האופרטור &.