首页 > 解决方案 > 即使在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;
}

标签: arrayscloopsinput

解决方案


一种方法是将代码包装在一个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循环中的所有内容创建一个函数,并调用该函数。

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


推荐阅读