arrays - 即使在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
循环中的所有内容创建一个函数,并调用该函数。
旁注:flag
必须0
在循环开始时设置为。
推荐阅读
- big-o - K-means 聚类算法的大 O 表示法
- python - Python中的for循环多处理或多线程
- python - 如何在 Python 中创建带有负 id 的 JSON
- angular - 垫子对话框不作为弹出窗口打开
- git - 如何关闭 IntelliJ 自动 repo 发现 VCS/Git
- laravel - Laravel 按儿童价值排序
- mongodb - 在 MeteorJS 中获取原始 mongo db 引用
- php - Laravel sync() 与多维数组
- arrays - 第 k 个最大元素的 QuickSelect 与 MaxHeap
- php - PHP if in foreach 给出对象