我最近接受了这个采访问题:
给定12小时模拟时钟,以度为单位计算小时和分针之间的较小角度.尽你所能精确.
我想知道什么是最简单,最可读,最精确的算法.欢迎使用任何语言的解决方案(但如果您认为有必要,请稍微解释一下).
我正在制作一个程序来接受教师结构中的输入,但存在未知的运行时错误,这是代码 -
#include <stdio.h>
#include <conio.h>
struct Teacher
{
char Name[30];
char Qualifications[20];
int experience_year;
}th[10];
void teacher()
{
int t,i;
printf("Enter how many teachers are in department\n");
scanf("%d",&t);
for(i=1;i<=t;i++)
{
printf("Enter name of teacher : ");
gets(th[i].Name);
printf("Enter qualification of teacher : ");
gets(th[i].Qualifications);
printf("Enter experience_year of teacher : ");
scanf("%d",&th[i].experience_year);
}
for(i=1;i<=t;i++)
{
printf("Details of %d teacher\n",i);
printf(th[i].Name);
printf(" ");
printf(th[i].Qualifications);
printf(" ");
printf("%d",th[i].experience_year);
printf("\n");
}
}
int main()
{
teacher();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是 -
Enter number …
Run Code Online (Sandbox Code Playgroud) 这是代码
int main()
{
int x=15;
printf("%d %d %d %d",x=1,x<20,x*1,x>10);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出是 1 1 1 1
我期待1 1 15 1
作为输出,
x*1
等于,15
但这里x*1
是1
,为什么?使用赋值运算符或修改内部值会printf()
导致undefined behaviour
?