带函数的c指针
编写一个程序,接受用户提供的总秒数。将此值连同三个变量(小时、分钟、秒)的地址一起传递给名为带函数的c指针,c,function,pointers,C,Function,Pointers,编写一个程序,接受用户提供的总秒数。将此值连同三个变量(小时、分钟、秒)的地址一起传递给名为time()的函数,该函数将计算小时、分钟和秒数。从main()打印此信息 请帮助我plz我如何修复我的代码,使这个程序的工作方式应该 /* Adham Hamade . */ #include <stdio.h> #include <conio.h> //function prototype void time(int &,int &,int &a
time()
的函数,该函数将计算小时、分钟和秒数。从main()
打印此信息
请帮助我plz我如何修复我的代码,使这个程序的工作方式应该
/* Adham Hamade
.
*/
#include <stdio.h>
#include <conio.h>
//function prototype
void time(int &,int &,int &, int);
int main()
{
//Variables
int num;
int hours;
int minutes;
int seconds;
//reference number variables
int *h = &hours;
int *m = &minutes;
int *s = &seconds;
printf("Please enter number of seconds");
scanf("%d",&num);
time(h, m, s, num);
printf("\n\nTime is %d hrs %d mins %d secs", hours, minutes, seconds);
getch();
return 0 ;
}
void time(int &h,int &m ,int &s, int num)
{
int sec;
int min;
int hr;
int t;
hr = num / 3600 ;
t = num %3600;
min = t/60;
sec = t%60;
hr = &h;
min = &m;
sec = &s;
}
/*Adham Hamade
.
*/
#包括
#包括
//功能原型
无效时间(int&,int&,int&,int&,int);
int main()
{
//变数
int-num;
整小时;
整数分钟;
整数秒;
//参考数变量
int*h=&hours;
int*m=&minutes;
int*s=&秒;
printf(“请输入秒数”);
scanf(“%d”和&num);
时间(h,m,s,num);
printf(“\n\n时间为%d小时%d分钟%d秒”,小时,分钟,秒);
getch();
返回0;
}
无效时间(int&h、int&m、int&s、int-num)
{
国际秒;
int-min;
国际人力资源;
int t;
hr=num/3600;
t=num%3600;
min=t/60;
sec=t%60;
hr=&h;
min=&m;
秒=&s;
}
C中没有按引用调用,只有按引用传递。改变
void time(int &,int &,int &, int);
到
在时间的函数定义中,更改
hr = &h;
min = &m;
sec = &s;
到
C中没有按引用调用,只有按引用传递。
改变
void time(int &,int &,int &, int);
到
在时间的函数定义中,更改
hr = &h;
min = &m;
sec = &s;
到
C中没有按引用调用,只有按引用传递。
改变
void time(int &,int &,int &, int);
到
在时间的函数定义中,更改
hr = &h;
min = &m;
sec = &s;
到
C中没有按引用调用,只有按引用传递。
改变
void time(int &,int &,int &, int);
到
在时间的函数定义中,更改
hr = &h;
min = &m;
sec = &s;
到
试试这个,只是修改了你的程序
#include <stdio.h>
//function prototype
void time(int *h,int *m ,int *s, int num);
int main()
{
//Variables
int num;
int hours;
int minutes;
int seconds;
//reference number variables
int h ;
int m ;
int s;
printf("Please enter number of seconds");
scanf("%d",&num);
time(&hours, &minutes, &seconds, num);
printf("\n\nTime is %d hrs %d mins %d secs", hours, minutes, seconds);
getch();
return 0 ;
}
void time(int *h,int *m ,int *s, int num)
{
int sec;
int min;
int hr;
int t;
hr = num / 3600 ;
t = num %3600;
min = t/60;
sec = t%60;
*h= hr ;
*m = min ;
*s =sec ;
}
所以一个函数调用
time(&hours, &minutes, &seconds, num);
定义
指针*h指向变量hours的地址
指针*m指向变量minutes的地址
指针*s指向变量seconds的地址
秒数的值被分配给num
因此,分配给指针的任何值都会反映在主函数中,因为它们指的是内存位置。试试这个,只是修改了你的程序
#include <stdio.h>
//function prototype
void time(int *h,int *m ,int *s, int num);
int main()
{
//Variables
int num;
int hours;
int minutes;
int seconds;
//reference number variables
int h ;
int m ;
int s;
printf("Please enter number of seconds");
scanf("%d",&num);
time(&hours, &minutes, &seconds, num);
printf("\n\nTime is %d hrs %d mins %d secs", hours, minutes, seconds);
getch();
return 0 ;
}
void time(int *h,int *m ,int *s, int num)
{
int sec;
int min;
int hr;
int t;
hr = num / 3600 ;
t = num %3600;
min = t/60;
sec = t%60;
*h= hr ;
*m = min ;
*s =sec ;
}
所以一个函数调用
time(&hours, &minutes, &seconds, num);
定义
指针*h指向变量hours的地址
指针*m指向变量minutes的地址
指针*s指向变量seconds的地址
秒数的值被分配给num
因此,分配给指针的任何值都会反映在主函数中,因为它们指的是内存位置。试试这个,只是修改了你的程序
#include <stdio.h>
//function prototype
void time(int *h,int *m ,int *s, int num);
int main()
{
//Variables
int num;
int hours;
int minutes;
int seconds;
//reference number variables
int h ;
int m ;
int s;
printf("Please enter number of seconds");
scanf("%d",&num);
time(&hours, &minutes, &seconds, num);
printf("\n\nTime is %d hrs %d mins %d secs", hours, minutes, seconds);
getch();
return 0 ;
}
void time(int *h,int *m ,int *s, int num)
{
int sec;
int min;
int hr;
int t;
hr = num / 3600 ;
t = num %3600;
min = t/60;
sec = t%60;
*h= hr ;
*m = min ;
*s =sec ;
}
所以一个函数调用
time(&hours, &minutes, &seconds, num);
定义
指针*h指向变量hours的地址
指针*m指向变量minutes的地址
指针*s指向变量seconds的地址
秒数的值被分配给num
因此,分配给指针的任何值都会反映在主函数中,因为它们指的是内存位置。试试这个,只是修改了你的程序
#include <stdio.h>
//function prototype
void time(int *h,int *m ,int *s, int num);
int main()
{
//Variables
int num;
int hours;
int minutes;
int seconds;
//reference number variables
int h ;
int m ;
int s;
printf("Please enter number of seconds");
scanf("%d",&num);
time(&hours, &minutes, &seconds, num);
printf("\n\nTime is %d hrs %d mins %d secs", hours, minutes, seconds);
getch();
return 0 ;
}
void time(int *h,int *m ,int *s, int num)
{
int sec;
int min;
int hr;
int t;
hr = num / 3600 ;
t = num %3600;
min = t/60;
sec = t%60;
*h= hr ;
*m = min ;
*s =sec ;
}
所以一个函数调用
time(&hours, &minutes, &seconds, num);
定义
指针*h指向变量hours的地址
指针*m指向变量minutes的地址
指针*s指向变量seconds的地址
秒数的值被分配给num
因此,分配给指针的任何值都会反映在主函数中,因为它们引用的是内存位置。因此,您能看出什么不起作用吗?使用调试器,用\n
结束所有printf
格式化字符串,或者调用fflush
创建指向变量的指针,只是为了维护别名,在需要地址时使用别名,这是一种糟糕的做法。您可以消除h
、m
和s
变量,只需调用time
作为time(&hours,&minutes,&seconds,num)
。该函数必须使用指针;C语言中没有引用参数。C语言中已经有一个time
函数,因此当您定义自己的名为time
的外部函数时,您正在调用未定义的行为。@Kaz;你怎么能说它调用UB?那么你能说什么不起作用了?使用调试器,用\n
结束所有printf
格式化字符串,或者调用fflush
创建指向变量的指针,只是为了维护别名,而在需要地址时使用别名,这是一种糟糕的做法。您可以消除h
、m
和s
变量,只需调用time
作为time(&hours,&minutes,&seconds,num)
。该函数必须使用指针;C语言中没有引用参数。C语言中已经有一个time
函数,因此当您定义自己的名为time
的外部函数时,您正在调用未定义的行为。@Kaz;你怎么能说它调用UB?那么你能说什么不起作用了?使用调试器,用\n
结束所有printf
格式化字符串,或者调用fflush
创建指向变量的指针,只是为了维护别名,而在需要地址时使用别名,这是一种糟糕的做法。您可以消除h
、m
和s
变量,只需调用time
作为time(&hours,&minutes,&seconds,num)
。该函数必须使用指针;C语言中没有参考参数。C语言中已经有一个time
函数,因此当您定义自己的名为time的外部函数时