我是一个尝试学习C的新手,我需要使用选择排序对数组进行排序。我还需要在算法进展时显示每次迭代。但我似乎无法使下面的代码工作。它在执行排序迭代部分的显示时抛出随机垃圾数量(请参见图片)。我已经搜索了很多,但仍然无法确定这个错误的原因。请帮忙。 Program execution
#include<stdio.h>
int main()
{
int s,i,j,t,temp,a[20];
printf("Enter the number of elements in the array\n");
scanf("%d",&s);
for(i=0;i<s;i++)
{
printf("Enter element %d\n",i+1);
scanf("%d",&a[i]);
}
printf ("Selection sort.\narray before sorting:\n");
for (i=0;i<s;i++)
printf ("%d ",a[i]);
printf ("\n");
for(i=0;i<s;i++)
{
printf ("After iteration %d\n", i+1);
for(j=i+1;j<s;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
for (t=0;t<s;t++);
printf ("%d ",a[t]);
printf ("\n");
}
printf("Array after sorting:\n");
for(i=0;i<s;i++)
printf ("%d ",a[i]);
return 0;
}
答案 0 :(得分:2)
你的问题是这一行:
var error=0;
var fname=$("input[name=fname]").val();
var lname=$("input[name=lname]").val();
var email=$("input[name=email]").val();
var pwd=$("input[name=pwd]").val();
var confirmpwd=$("input[name=confirmpwd]").val();
var tel=$("input[name=tel]").val();
var mobile=$("input[name=mobile]").val();
var postalcode=$("input[name=postalcode]").val();
var address=$("textarea[name=address]").val();
var state=$("#statediv option:selected").val();
var city=$("#citydiv option:selected").val();
var captcha=$("input[name=captcha]").val();
if( fname=='' ){ error=1; $("#fnameErr").html('لطفا نام خود را وارد کنید.');
$("input[name=fname]").addClass('red'); }
else{ $("#fnameErr").hide(); $("input[name=fname]").removeClass('red'); }
if( lname=='' ){ error=1; $("#lnameErr").html('لطفا نام خانوادگی خود را وارد کنید.');
$("input[name=lname]").addClass('red'); }
else{ $("#lnameErr").hide(); $("input[name=lname]").removeClass('red'); }
var regexp=/^[a-z0-9_\.-]+@{1}[a-z0-9_\.-]+\.[a-z]{2,5}$/i;
if(regexp.test(email)==false){error=1; $("#emailErr").html('لطفا ایمیل خود را به درستی وارد کنید.');
$("input[name=email]").addClass('red'); }
else{ $("#emailErr").hide(); $("input[name=email]").removeClass('red'); }
regexp=/.{5,}/i;
if(regexp.test(pwd)==false){error=1; $("#pwdErr").html('لطفا رمز عبور خود را به درستی وارد کنید.');
$("input[name=pwd]").addClass('red'); }
else{if(pwd!=confirmpwd){error=1; $("#confirmpwdErr").html('تکرار رمز عبور نادرست است.');
$("input[name=confirmpwd]").addClass('red'); }
else{$("#confirmpwdErr").hide(); $("input[name=confirmpwd]").removeClass('red');
$("#pwdErr").hide(); $("input[name=pwd]").removeClass('red');}
}
regexp=/^0{1}[0-9]{10,12}$/i;
if(regexp.test(tel)==false){error=1; $("#telErr").html('لطفا شماره ثابت خود را به درستی وارد کنید.');
$("input[name=tel]").addClass('red'); }
else{ $("#telErr").hide(); $("input[name=tel]").removeClass('red'); }
regexp=/^0{1}9{1}[0-9]{9}$/i;
if(regexp.test(mobile)==false){error=1; $("#mobErr").html('لطفا شماره همراه خود را به درستی وارد کنید.');
$("input[name=mobile]").addClass('red'); }
else{ $("#mobErr").hide(); $("input[name=mobile]").removeClass('red'); }
regexp=/^[0-9]{10}$/i;
if(regexp.test(postalcode)==false){error=1; $("#postalcodeErr").html('لطفا کد پستی خود را به درستی وارد کنید.');
$("input[name=postalcode]").addClass('red'); }
else{ $("#postalcodeErr").hide(); $("input[name=postalcode]").removeClass('red'); }
if( address=='' ){ error=1; $("#addressErr").html('لطفا آدرس خود را وارد کنید.');
$("textarea[name=address]").addClass('red'); }
else{ $("#addressErr").hide(); $("textarea[name=address]").removeClass('red'); }
if(state==0){error=1; $("#stateErr").html('لطفا استان خود را وارد کنید.');
$("#statediv").addClass('red');}
else{ $("#stateErr").hide(); $("#statediv").removeClass('red'); }
if(city==0){error=1; $("#cityErr").html('لطفا شهر خود را وارد کنید.');
$("#citydiv").addClass('red');}
else{ $("#cityErr").hide(); $("#citydiv").removeClass('red'); }
if(error==0){
$.ajax({
url:'checkcaptcha.php',
type:'post',
async:false,
data:{captcha:captcha}
})
.done(function(msg){
if(msg==1){ error=1; $("#captchaErr").html('لطفا عبارت درست را وارد کنید.');
$("input[name=captcha]").addClass('red'); }
else{ $("#captchaErr").hide(); $("input[name=captcha]").removeClass('red'); }
})
}
if(error==0){
$.ajax({
url:'checkmobile.php',
type:'post',
data:{mobile:mobile}
})
.done(function(msg){
if(msg==1){ error=1; alert('این شماره موبایل قبلا ثبت شده است!');
$("input[name=mobile]").addClass('red'); }
else{ $("input[name=mobile]").removeClass('red'); }
})
}
if(error==0){
$.ajax({
url:'checkemail.php',
type:'post',
data:{email:email}
})
.done(function(msg){
if(msg==1){ error=1; alert('این ایمیل قبلا ثبت شده است!');
$("input[name=email]").addClass('red'); }
else{ $("input[name=email]").removeClass('red'); }
})
}
if(error=1){ return false; }
return true;
}
将该行结束为for (t=0;t<s;t++);
意味着t将计数到s而不进行任何工作,并且在该循环之后将使用未初始化的值;
打印一行。