注册 登录
编程论坛 C++教室

k 没有赋值?

a874695162 发布于 2014-09-14 20:12, 422 次点击
程序代码:
#include "stdafx.h"
#include<iostream>
using namespace std;
int find(int *,int *);
int find(int *,int *,int *);
void swap(int *,int,int *);
void swap(int *,int*);
int main()
{
    int a[5][5]={42,39,58,76,33,
                 52,57,69,82,73,
                 48,41,1,58,68,
                 72,59,100,69,73,
                 2,3,4,92,99},* b[5]={*a,*a,*a,*a,*a};
   
    *(b+4)=*a+find(*(b+4),*a);
    for(int i=3;i>=0;i--)
        *(b+i)=*a+find(*a+i,*a+i+1,*a);
    for(int m=0,k=1;m<5;m++)
        swap(*(b+m),k++,*a);
    for(int t=1,i=0;i<=25;i++,t++)
    {
        if(t%5==0)cout<<endl;
        cout<<*(*a+i)<<" ";
    }
    return 0;
}
int find(int * p,int *a)
{
    int k;
    for(int i=0;i<25;i++)
    {
        if(*p<*(a+i))k=i;
    }
return k;
}
int find(int *p,int *q,int *a)
{
    int k;
    for(int i=0;i<25;i++)
        if(*p<*(a+i)&&*p<*q)k=i;

    return k;
}
void swap(int *p,int k,int *a)
{
    switch(k)
    {
    case 1:swap(p,a);
    case 2:swap(p,a+4);
    case 3:swap(p,a+12);
    case 4:swap(p,a+20);
    case 5:swap(p,a+24);
    }
}
void swap(int *p,int *q)
{
    int temp;
    temp=*q;*q=*p;*p=temp;
}

运行时,弹出一对话框,提示“the varible "k" is being used without being initialized” 这是什么情况?
4 回复
#2
七夜之华2014-09-14 20:54
已赋值。
#3
wp2319572014-09-15 08:50
这句话的意思是 你使用了一个没有被初始化的变量

 if(*p<*(a+i)) k =i ; else k=????
#4
ditg2014-09-15 16:49
大哥,中间加点空格嘛,看着好费力,呵呵
#5
fl89622014-09-16 03:45
swap(*(b+m),k++,*a); in your main function, did you declare the variable k?
Yes you declared it in you swap, find functions. However, in your main function?
1