乐瑜 发表于 2020-11-6 11:49:07

C语言-输入问题

//这里应该怎么用判断语句,把”输入10个互不相同的整数“的功能实现,最好能够识别有相同整数后可以有提示并重新输入
#include<stdio.h>
main()
{
        int a,i,j,k,max,m,min,n;
        printf("请输入互10个不相同的整数:\n");
        i=0;
        do{
                scanf("%d",&a);
                i++;
        }while(i<10);
        min=max=a;
        for(j=0;j<10;j++){
                if(a<min){
                        min=a;
                        n=j;
                }
                if(a>max){
                        max=a;
                        m=j;
                }
        }
        a=max;
        a=min;
        for(j=0;j<10;j++){
                printf("%d ",a);
        }
        printf("\n");
}

jitianmoshen 发表于 2020-11-6 15:29:25

把你中间改下
SHURU: do
    {
      scanf("%d",&a);
      i++;
    }while(i<10);
    for (i = 0;i < 10;i++)
    {
      for (j = 9;j > i;j--)
      {
            if (a == a)
            {
                printf("里面有重复的数字,请重新输入:\n");
                goto SHURU;
            }
      }
    }

sunrise085 发表于 2020-11-6 16:10:21

帮你在do…while…循环中添加了判断重复的代码。顺便帮你修改了小问题,你的mn没有赋初值,有可能会没有值哟。
#include<stdio.h>
main()
{
    int a,i,j,k,max,m=0,min,n=0,flag=0;//这里修改了,mn赋初值了,添加了一个变量flag,在do…while…中需要用到
    printf("请输入互10个不相同的整数:\n");
    i=0;
    do{
      scanf("%d",&a);
      for(j=0;j<i;j++){//for循环判断输入的值是否与之前的重复
            if(a==a)
            {
                flag=1;//若重复则将flag置为1,
                break;
            }
      }
      if(flag)//若flag为1,说明与之前输入的重复,则需要重新输入,
      {
            printf("列表中已经存在该数字请重新输入:");
            flag=0;//flag复位,为下次判断是否重复做准备
            continue;//跳过下一行的i++,进行下次循环,相当于重新输入
      }
      i++;
    }while(i<10);
    min=max=a;
    for(j=0;j<10;j++){
      if(a<min){
            min=a;
            n=j;
      }
      if(a>max){
            max=a;
            m=j;
      }
    }
    a=max;
    a=min;
    for(j=0;j<10;j++){
      printf("%d ",a);
    }
    printf("\n");
}

乐瑜 发表于 2020-11-6 18:38:23

jitianmoshen 发表于 2020-11-6 15:29
把你中间改下

谢谢大佬{:5_109:}

乐瑜 发表于 2020-11-6 18:39:09

sunrise085 发表于 2020-11-6 16:10
帮你在do…while…循环中添加了判断重复的代码。顺便帮你修改了小问题,你的mn没有赋初值,有可能会没有值 ...

谢谢大佬{:5_109:}
页: [1]
查看完整版本: C语言-输入问题