c语言改错!!在线等!!,12点左右一定要出答案!!另外一道

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:00:06
#include <math.h>
#include <stdio.h>
void fun(char *s, char *t, int k)
{ int i;
k=0;
for (i=0;s[i];i++)
if(0<=s[i]&&s[i]<=9)
{
t[*k]=s[i];
*k+=1;
}
}
void main()
{ char s[100],t[9];
long int n;
int i,k;
printf("\nPlease enter string s:");
scanf("%s", s);
fun(s,t,&k);
for(i=0;i<k;i++)
n+=(t[k-1-i]-'0')*pow(10,i);
printf("The result is: %d", n);
}


呵呵,问题太多了
===================
void fun(char *s, char *t, int k)
fun(s,t,&k);
函数原型与调用参数不符
===================
函数里面也弄不清是在传参还是传值
void fun(char *s, char *t, int k)
{ int i;
k=0;
for (i=0;s[i];i++)
if(0<=s[i]&&s[i]<=9)
{
t[*k]=s[i];//k=0是一个空指针
*k+=1;
}
}
////////////////////////////////////////////
//改正的原函数//////////////////////////////

void fun(char *s, char *t, int &k)
{
for (int i=0;s[i];i++)
if(0<=s[i] && s[i]<=9)
{
t[k]=s[i];//k是一个byref传递的指针
k+=1;
}
}
////////////////////////////////////////////
////或者这样改//////////////////////////////
void fun(char *s, char *t, int *k)
{
*k=0;
for (int i=0;s[i];i++)
if(0<=s[i] && s[i]<=9)
{
t[*k]=s[i];//k是一个int指针
*k+=1;
}
}
/////////////////////////////////////////////

fun(s,t,&k); //调用方法不变

*k 是什么啊?有这样的吗? FUN