c语言-标题是--数据输出,求大神指点迷津

问题描述

标题是--数据输出,求大神指点迷津

输入整数n(n<100)和m(m<10),输出m和m的倍数,还有包含m的数字,例如(6,12,16,18...60,66,72,76...)。

Input

输入正整数n和m。

Output

输出从小到大排列的不大于n的与m有关的数字。每组数据占一行,每个数字后面有一个空格。

Sample Input

30 6
Sample Output

6 12 16 18 24 26 30
HINT

最后一个数字后面也有空格

代码如下
#include
int main()
{
int n,m,i;
scanf("%d %d",&n,&m);
for(i=1;i<=n;i++)
{
if(i%m==0||i%10==6)
printf("%d ",i);
}
printf("n");
return 0;
}
测试没错,就是提交错误

解决方案

改为:
if(i%m==0||i%10==m||i/10==m)

解决方案二:

//.cpp
 #include <stdio.h>

int main(){

    int m, n;

    while (scanf("%d%d", &n, &m) != EOF) {

        for (int i = 1; i <= n; i++){
            //判断i是否是m的倍数
            if (i % m == 0){

                printf("%d ", i);
                continue;
            }
            //判断i中是否包含m
            //注意:题设m<10 , 意味m为0~9的单个数字,若m>10呢? ...
            if (i > m){
                int  remainder;
                int  intresult = i;
                //此处使用循环整除 比如 45 对于 4    余数45%10 =5  整除结果45/10 = 4  5!=4 再循环,此时4/10 = 0 4%10 =4; 4==4 ok得结果;
                while (intresult > m ){
                    remainder = intresult % 10;
                    intresult = intresult / 10;
                    if (remainder == m){
                        printf("%d ", i);
                        break;
                    }
                }
            }
        }
        printf("n");
    }

}

解决方案三:

对,关键是要正确的实现“包含”操作。在遍历n的过程中,看m是否是n的十位数或者个位数。

如果不强调效率的话,可以转换为一个判断是否为子串的操作。

解决方案四:

包含m的数没注意所在数位,请你再看一下吧~

解决方案五:

错误很明显,if语句后 i%10 == m

解决方案六:

是的,这点我只是针对此题了,但是改过后还是不对

解决方案七:

提交上面显示社么错误么?

解决方案八:

=================/data5.out
Right:
9 18 19


Your:
6 9 16 18

解决方案九:

if(i%m==0||i%10==6)
改为
if(i%m==0||i%10==m)

解决方案十:

if(i%m==0||i%10==m||i/10==m)

时间: 2024-09-30 03:08:47

c语言-标题是--数据输出,求大神指点迷津的相关文章

c语言-C语言问题,求大神指点迷津

问题描述 C语言问题,求大神指点迷津 #include #include void main() { char *p; p = (char *)malloc(sizeof(char)); char *px; px = p; p = "sajjjmmij"; printf("%s,%s", p, px); system("pause"); } px输出是乱码,为什么?就想用这种方式让两个指针指向同一片字符串地址 解决方案 注释都写在代码里了 #in

c语言-C语言的一个程序,求大神

问题描述 C语言的一个程序,求大神 三.实验内容 1.实验题目:手动输入10个0~100之内的整数,按从小到大排列输出.: (1)要求 排序算法: 使数组从小到大排序的规则如下: ⑴ 设数组为a[0],a[1],-,a[n-1],构造i循环从0,1,-,n-2变化,构造j循环从i+1,i+2,-,n-1变化,即j>i. ⑵ 对于任何一个a[i],如果a[i]>a[j],表面前面有一个元素a[i]比它后面的元素a[j]大,a[i]应该在后面,a[j]应该在前面,交换a[i]与a[j]. ⑶ 对于

基础-请问一个C语言奇怪的问题,求大神

问题描述 请问一个C语言奇怪的问题,求大神 //加了所有需要的头文件intmain(int argc char **argv){ struct event timeout; struct timeval tv; struct event_base *base; int flags; //printf(""pathvar=%s""getenv(""PATH"")); 注释1#ifdef WIN32 WORD wVersionRe

strcpy-c语言比较细致的问题.求大神帮我解答.

问题描述 c语言比较细致的问题.求大神帮我解答. #include#includeint main(){ int sum=0; char array[20][200]={""""}; int m=0n; float k=0; int k1=0i; scanf(""%d""&n); for(i=0;i { scanf(""%d""&sum); scanf("&qu

不懂c语言基础的问题,求大神解答。

问题描述 不懂c语言基础的问题,求大神解答. for(j=0;j<=9;j++){ scanf(""%d""&i); a[j]=i;} 这样写为什么不行? 原代码:#includeint main(){ int a[10]ijz; printf(""请输入十个数值:""); for(j=0;j<=9;j++) scanf(""%d""&i); a[j]=i;

程序设计-这个C语言程序怎么写,求大神帮忙

问题描述 这个C语言程序怎么写,求大神帮忙 题目二十四:职工工资管理系统 功能设计要求(1-2人) 1. 输入记录:将每一个职工的姓名.ID号以及基本工资.职务工资.岗位津贴.医疗保险.公积金的数据作为一个记录.?该软件能建立一个新的数据文件或给已建立好的数据文件增加记录. 2. 显示记录:根据用户提供的记录或者根据职工姓名显示一个或几个职工的各项工资和平均工资. 3. 修改记录:可以对数据文件的任意记录的数据进行修改并在修改前后对记录内容进行显示. 4.查找记录:可以对数据文件的任意记录的数据

求解决-求用c语言编写此程序,求大神们指教

问题描述 求用c语言编写此程序,求大神们指教 本题要求编写程序,打印一个高度为n的.由"*"组成的正菱形图案. 输入格式: 输入在一行中给出一个正的奇数n. 输出格式: 输出由n行星号"*"组成的菱形,如样例所示.每个星号后跟一个空格. 输入样例: 7 输出样例: * * * * * * * * 解决方案 void printDiamond(int rows) { for (int i = 1; i <= rows; i++) { int flag = (ro

c语言-C语言文件一小问题!求大神

问题描述 C语言文件一小问题!求大神 #include"stdio.h" #include"stdlib.h" #define N 3 #define M 4 struct student { int num; char name[20]; int score[M]; }stu[N]; int main() { int i,j; FILE fp; if((fp=fopen("shuju.txt","wb"))==NULL) {

c语言-C语言文件一小问!求大神

问题描述 C语言文件一小问!求大神 问题.我写了数据存放到文本,保存后.再次增加数据进去就出现问题. 1.一开始存入两个学生数据.没出错2.当我再往里面添加1个学生信息3.我次运行程序都会先刷新一下,增加数据都会保存.void shuaxin() //刷新学生信息函数{ FILE *fp; int i=0; //记录学生人数 if((fp=fopen(""student.txt""r""))==NULL) { printf(""