m0_57616435 2021-12-08 14:54 采纳率: 66.7%
浏览 25
已结题

想问一下这一段代码有什么问题

这段代码想检测输入是否为正整数,但输入是整数的时候不能得到结果,函数不返回1

#include <stdio.h>
#include <string.h>

int isint(char x[]){
    int mark=0;                                 // used for loop marking
    int i;
    while (mark==0){
        for (i=0; i<strlen(x); i++){            // check if it is a int
            if (x[i]>='0' && x[i]<='9'){
                continue;
            }else{
                return mark;
            }
        }
    }
    mark=1;
    return mark;
}

int main ()
{
    char table[100];
    int i=0;
    while((table[i] = getchar()) != '\n') i++;
    table[i] = '\0';
    int a=isint(table);
    printf("%d", a);
    return 0;
}
  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-08 15:27
    关注
    
    #include <stdio.h>
    #include <string.h>
    int isint(char x[])
    {
        int mark = 1; // used for loop marking
        int i;
        for (i = 0; i < strlen(x); i++)
        { // check if it is a int
            if (x[i] >= '0' && x[i] <= '9')
            {
                continue;
            }
            else
            {
                mark = 0;
                break;
            }
        }
        return mark;
    }
    int main()
    {
        char table[100], c;
        int i = 0;
        while((table[i] = getchar()) != '\n') i++;
        table[i] = '\0';
        int a = isint(table);
        printf("%d", a);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 求caverdock使用教程
  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值