繁体   English   中英

C程序执行后如何多次输入?

[英]How to take input multiple times even after the execution of program in C?

所以我正在编写这个程序来查找一个数字在一个数字中重复的次数。即使在第一次执行之后,我怎样才能要求用户一次又一次地输入输入

#include <stdio.h>

int main()
{
    int rem,flag,n;
    int frequency[10]={0};
    printf("enter a number");
    scanf("%d",&n);
    while(n>0){
        rem=n%10;
        frequency[rem]++;
        n=n/10;
    }
 for(int i=0;i<10;i++)
 {
    if(frequency[i]>1){
        flag=1;
        printf("%d is repeated %d times",i,frequency[i]);
        
    }
 }
    if(flag==0){
        printf("no number is repeated");
    } 
     
     
 
    
    return 0;
}

一种方法是将您的代码包装在while (1)循环中(永远循环)。 我添加了一个额外的检查:如果用户输入数字0 ,程序将跳出循环并退出。 必须有某种方式来阻止。

#include <stdio.h>

int main()
{
    while (1){
        int rem,flag=0,n;
        int frequency[10]={0};

        printf("enter a number");
        scanf("%d",&n);

        if (n==0){
            break;
        }

        while(n>0){
            rem=n%10;
            frequency[rem]++;
            n=n/10;
        }
     for(int i=0;i<10;i++)
     {
        if(frequency[i]>1){
            flag=1;
            printf("%d is repeated %d times",i,frequency[i]);
            
        }
     }
        if(flag==0){
            printf("no number is repeated");
        } 
    }

    return 0;
}

对于更简洁的解决方案,您可能希望为while循环中的所有内容创建一个 function,并将其称为 function。

旁注: flag必须在循环开始时设置为0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM