当前位置: 代码迷 >> 综合 >> 输入一个整数(100~9999, 输出10~该数之间 所有个位数减去其他位数的差 大于0的数字数量
  详细解决方案

输入一个整数(100~9999, 输出10~该数之间 所有个位数减去其他位数的差 大于0的数字数量

热度:56   发布时间:2023-12-14 11:16:01.0

(合法的数字样例 124, 258, 247)
(不合法的数字样例: 121, 256, 246)
样例输入: 300
样例输出: 100
样例输入: 124
样例输出: 52

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
/**程序窗口*/
void winos();
//判断输入是否合法(范围 非数字判断 )
void User_Input(int* a);int main()
{
    winos();  //程序窗口int  n; //用户输入int num = 0;//int a = 0; //个位//int b = 0;//十位//int c = 0;//百位//int d = 0;//千位//User_Input(&n);//a = n % 10;//b = n % 100 / 10;//c = n % 1000 / 100;//d = n % 10000 / 1000;//printf("%d %d %d %d \n", a, b, c, d); // 测试while (1){
    printf("请输入一个数字\n");//判断师傅输入合法while (1){
    //判断输入是否是数字User_Input(&n);//判断输入是否合法if (n > 100 && n < 10000){
    //循环从10开始for (int i = 10; i <= n; i++){
    int b = i % 10;int c = i / 10;int sum = 0;while (c){
    sum += c % 10;c /= 10;}if (b > sum){
    num++;}}printf("%d\n",num);num = 0;break;}else{
    printf("输入错误请重新输入\n");}}printf("还要继续玩吗? (任意键继续玩,按n退出程序)\n");char ch = ' ';if (ch = _getch(), ch == 'n' || ch == 'N'){
    break;}}printf("\n"); system("pause");return 0;
}
/**程序窗口*/
void winos()
{
    system("title oo");//设置CMD窗口 标题system("color 4E");system("mode con cols=85 lines=65");//设置窗口大小printf("\t\t\t※当 前 时 间※\n\n");printf("\t\t\t");system("date /T");printf("\t\t\t");system("TIME /T");
}
判断输入是否合法(范围 非数字判断 )
void User_Input(int* a)
{
    do {
    //如果输入函数返回值是1,代表输入正确 跳出循环if (scanf("%d", a) == 1){
    break;}//如果返回值不是1,执行下面的,char choice;//循环字符缓冲区内容while ((choice = getchar()) != '\n' && choice != EOF);printf("输入的不是数字!请重新输入:\n");} while (scanf("%d", a) != 1);
}