printf 打印问题

问题遇到的现象和发生背景

两行printf 打印,输出错误,如果只打印一个结果就没问题,这是什么原因?

代码和结果截图

img

img

img

#include <iostream>
#include <string>
#include <stdio.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int num,jige_num,youxiu_num,score;
  float jige_ration,youxiu_ration;
  int jige,youxiu;
  cin>>num;
  for(int i = 0;i < num;i++)
  {
    cin>>score;
    if(score>=60) jige_num++;
    if(score>=85) youxiu_num++;
  }
  jige_ration = (jige_num*1.0)/(num*1.0);
  youxiu_ration = (youxiu_num*1.0)/(num*1.0);

  if(int(jige_ration*1000)%10 >=5)
    jige = int(jige_ration*100) + 1;
  else
    jige = (int)(jige_ration*100);
  // printf("%d%\r\n",jige_ration);

  if(int(youxiu_ration*1000)%10 >=5)
    youxiu = int(youxiu_ration*100) + 1;
  else
    youxiu = (int)(youxiu_ration*100);
  printf("%d%\n",jige);
  printf("%d%\n",youxiu);
  return 0;
}

输出%号,要用%%
printf("%d%%\n",jige);