01/10/2018, 11:48
Hỏi về lỗi trong C
#include <stdio.h>
int main()
{
int n,i,j;
scanf("%d", &n);
double a[n+1];
int vitri[n+1];
for(i=1;i<=n+1;i++) vitri[i]=i;
for(i=1;i<=n;i++) scanf("%lf", &a[i]);
int boolean=1;
for (i=1;i<=n;i++)
{
if (a[i]>=1 || a[i]<=0) boolean=0;
}
if (boolean==1)
{
for (i=1;i<=n;i++)
{
for (j=i+1;j<=n;j++)
{
if (a[i]<a[j])
{
int temp2;
double temp1;
a[i]=temp1;
a[i]=a[j];
a[j]=temp1;
vitri[i]=temp2;
vitri[i]=vitri[j];
vitri[j]=temp2;
}
}
}
double heso=1;
i=1;
if (a[1]<0.05) printf("No one is alive");
else
{
do
{
printf("%d ", vitri[i]-1);
i++;
heso=heso*0.5;
for (j=1;j<=n;j++) a[j]=a[j]*heso;
}
while (a[i]>=0.05);
}
}
else printf("invalid");
return 0;
}
mình có một thuật toán như trên. khá lằng nhằng. nhưng ở phần sắp xếp thì trình nhập ở trường mình báo lỗi về là :
prog.c:30:21: error: 'temp1' may be used uninitialized in this function [-Werror=maybe-uninitialized]
a[i]=temp1;
^
prog.c:33:25: error: 'temp2' may be used uninitialized in this function [-Werror=maybe-uninitialized]
vitri[i]=temp2;
mình chạy trên dev C++ vẫn bình thường nhỉ ? có gì sai ở đây không mọi người ?
Bài liên quan
Gợi ý: bạn nên tìm hiểu lại hoán vị!
Sai ở đâu thì up code lên, bạn nói thế này thì chẳng ai giúp được bạn đâu.