鱼C论坛

 找回密码
 立即注册
查看: 2914|回复: 3

[已解决]各位大神,帮我看看代码哪里出了问题

[复制链接]
发表于 2021-7-2 15:25:18 | 显示全部楼层 |阅读模式
2鱼币
题目是这样的 输入一个字符串,内有数字和非数字字符,例如:
A123x456 17960? 302tab5876
将其中连续的数字作为一个整数,依次存放到一维数组a中。例如,123放在a[0],456放在a[1]。。。。。。统计共有多少个整数,并输出这些数

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


我输的代码是这样的,但结果是乱码,哪里有问题啊!!!
最佳答案
2021-7-2 15:25:19
#include<stdio.h>

int main()
{
        char str[50], *p;   //str为输入的字符串
        int i, n;   
        int a[50] = { 0 };    //a为存放数字的数组     可能是这里没有初始化为0  数组都是随机的数
        printf("input a string:");
        gets_s(str);
        p = str;
        n = 0;
        while (*p != '\0')    //while里面有问题
        {
                if ((*p >= '0') && (*p <= '9'))
                {
                        a[n] = a[n] * 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[i]);
        printf("\n");
        return 0;
}
QQ图片20210702152033.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-7-2 15:25:19 | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>

int main()
{
        char str[50], *p;   //str为输入的字符串
        int i, n;   
        int a[50] = { 0 };    //a为存放数字的数组     可能是这里没有初始化为0  数组都是随机的数
        printf("input a string:");
        gets_s(str);
        p = str;
        n = 0;
        while (*p != '\0')    //while里面有问题
        {
                if ((*p >= '0') && (*p <= '9'))
                {
                        a[n] = a[n] * 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[i]);
        printf("\n");
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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("下次考试不要灰心")

大佬看哪里错了,报错没显示
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-7-2 19:15:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 01:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表