|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
//这里应该怎么用判断语句,把”输入10个互不相同的整数“的功能实现,最好能够识别有相同整数后可以有提示并重新输入
#include<stdio.h>
main()
{
int a[10],i,j,k,max,m,min,n;
printf("请输入互10个不相同的整数:\n");
i=0;
do{
scanf("%d",&a[i]);
i++;
}while(i<10);
min=max=a[0];
for(j=0;j<10;j++){
if(a[j]<min){
min=a[j];
n=j;
}
if(a[j]>max){
max=a[j];
m=j;
}
}
a[n]=max;
a[m]=min;
for(j=0;j<10;j++){
printf("%d ",a[j]);
}
printf("\n");
}
帮你在do…while…循环中添加了判断重复的代码。顺便帮你修改了小问题,你的mn没有赋初值,有可能会没有值哟。
- #include<stdio.h>
- main()
- {
- int a[10],i,j,k,max,m=0,min,n=0,flag=0;//这里修改了,mn赋初值了,添加了一个变量flag,在do…while…中需要用到
- printf("请输入互10个不相同的整数:\n");
- i=0;
- do{
- scanf("%d",&a[i]);
- for(j=0;j<i;j++){//for循环判断输入的值是否与之前的重复
- if(a[j]==a[i])
- {
- flag=1;//若重复则将flag置为1,
- break;
- }
- }
- if(flag)//若flag为1,说明与之前输入的重复,则需要重新输入,
- {
- printf("列表中已经存在该数字请重新输入:");
- flag=0;//flag复位,为下次判断是否重复做准备
- continue;//跳过下一行的i++,进行下次循环,相当于重新输入
- }
- i++;
- }while(i<10);
- min=max=a[0];
- for(j=0;j<10;j++){
- if(a[j]<min){
- min=a[j];
- n=j;
- }
- if(a[j]>max){
- max=a[j];
- m=j;
- }
- }
- a[n]=max;
- a[m]=min;
- for(j=0;j<10;j++){
- printf("%d ",a[j]);
- }
- printf("\n");
- }
复制代码
|
|