发布网友 发布时间:2022-04-26 02:47
共3个回答
热心网友 时间:2022-05-18 16:24
方法很多,我用数组实现。
定义20大小数组,下标加1就是1~20的数字,数组元素值就是输入状态。
#include<stdio.h>
#include<windows.h>
#include<conio.h>
void show(int *nums);
int main()
{
int nums[20]={0};//表示1到20个数字的状态,0表示未被输入,1表示已被输入
int save[19],*p=save,n=19,in=0,flag;
while(n--)
{
flag=1;
system("cls");
show(nums);
printf("请输入一个数字(1~20):"),scanf("%d",&in);
while(in<1 || in>20 || nums[in-1]==1)
{
if(in<1 || in>20)
printf("输入错误!只能输入1~20的整数!...按任意键重新输入...\n"),getch();
else if(nums[in-1]==1)
printf("输入错误!数字%d已输入,不能重复!...按任意键重新输入...\n",in),getch();
flag=0;
n++;
break;
}
if(flag)
*p=in,nums[in-1]=1;
}
return 0;
}
void show(int *nums)
{
int i;
printf("已输入数字:");
for(i=0;i<20;i++)
if(nums[i])
printf("%d ",i+1);
printf("\n未输入数字:");
for(i=0;i<20;i++)
if(!nums[i])
printf("%d ",i+1);
printf("\n");
}
热心网友 时间:2022-05-18 16:24
#include <stdio.h>热心网友 时间:2022-05-18 16:25
#include <stdio.h>