永发信息网

关于c语言子函数调用的问题,下面的程序有什么问题?

答案:2  悬赏:80  手机版
解决时间 2021-02-13 23:26
  • 提问者网友:孤凫
  • 2021-02-12 23:03
# include

A (int a, int b)
{
int t;

if (a>b)
{
t = a;
a = b;
b = t;
}
}

int main(void)
{
int a, b, c, d;

scanf("%d%d%d%d", &a, &b, &c, &d);

A (a, b);
A (a, c);
A (a, d);
A (b, c);
A (b, d);
A (c, d);

printf("%d %d %d %d ", a, b, c, d);

return 0;
}
最佳答案
  • 五星知识达人网友:拾荒鲤
  • 2021-02-12 23:31
语法上没什么问题。
如果为了验证不用指针参数的结果--达不到交换的目的,程序证明了这点。
--------------------------------------------
如果你想达到交换的目的,那么要用指针:
A (int *a, int *b)
{
int t;
if (*a > *b)
{ t = *a; *a = *b; *b = t; }
}
函数调用 改成:
A (&a, &b);
A (&a, &c);
...
A (&c, &d);
------
程序有无问题,与程序的任务有关。
全部回答
  • 1楼网友:街头电车
  • 2021-02-13 00:45

#include <stdio.h>

char*name[]={"january","february","march","april","may","june","july","august","september","october","november","december"};

char *sc(int);

int main()

{

int n;

char *p;

scanf("%d",&n);

p=sc(n);  //输入的值作为参数传递

printf("%s\n",p);

return 0;

}

char *sc(int n)

{

return name[n-1]; //直接返回对应的月份

}

去掉一些多余的语句就可以了

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯