ginobili_86 发表于 2021-7-2 15:25:18

各位大神,帮我看看代码哪里出了问题

题目是这样的 输入一个字符串,内有数字和非数字字符,例如:
A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一维数组a中。例如,123放在a,456放在a。。。。。。统计共有多少个整数,并输出这些数

#include<stdio.h>
int main()
{
        char str,*p;   //str为输入的字符串
        int a,i,n;    //a为存放数字的数组
        printf("input a string:");
        gets(str);
        p=str;
        n=0;
        while(*p != '\0')
        {
                if((*p>='0') && (*p<='9'))
                {
                        a = a * 10 + *p - '0';
                        p++;
                }
                n++;
                p++;
        }
        printf("the number is :\n");
        for(i=0;i<n;i++)
                printf("%d",a);
        printf("\n");
        return 0;
}


我输的代码是这样的,但结果是乱码,哪里有问题啊!!!

lei1996 发表于 2021-7-2 15:25:19

#include<stdio.h>

int main()
{
        char str, *p;   //str为输入的字符串
        int i, n;   
        int a = { 0 };    //a为存放数字的数组   可能是这里没有初始化为0数组都是随机的数
        printf("input a string:");
        gets_s(str);
        p = str;
        n = 0;
        while (*p != '\0')    //while里面有问题
        {
                if ((*p >= '0') && (*p <= '9'))
                {
                        a = a * 10 + *p - '0';
                        if (*(p + 1) < '0' || *(p + 1) > '9')
                        {
                                n++;
                        }
                }
                p++;
       
        }
        printf("the number is :\n");
        for (i = 0; i<n; i++)
                printf("%d ", a);
        printf("\n");
        return 0;
}

dfesndjffrf 发表于 2021-7-2 18:40:01

本帖最后由 dfesndjffrf 于 2021-7-2 18:42 编辑

"""作业"""
an = 100
tue = input("分数及格线“)
            a = int(tue)
            if an and a:
            print("满分")
            if an > a >= 90:
            print("多加练习")
            if an > a >= 80 < 90:
            print("上课不认真听讲")
            if an > a >=70 < 80 < 90:
            print("下次不要放这样的错")
            if an > a >= 60 < 70 < 80 < 90:
            print("全是猜的")
            else:
                if an > a > 50 > 1:
                  print("罚抄十片")
print("下次考试不要灰心")

大佬看哪里错了,报错没显示

ginobili_86 发表于 2021-7-2 19:15:11

lei1996 发表于 2021-7-2 16:37


十分感谢!!
页: [1]
查看完整版本: 各位大神,帮我看看代码哪里出了问题