0的程序写法取决于你想要实现的功能。以下是一些不同场景下的0程序示例:
简单的延时程序
```c
include
define uint unsigned int
define uchar unsigned char
sbit P21 = P2^0;// 定义P2口的第1位为输出
void delay(uint z) {// 延时函数
while (z--) {
P2 = P2 ^ 0b10000000;
}
}
void main() {
TMOD = 0x01;// 定时器0初始化
TH0 = (65536 - 50000) / 256;// 约为50ms
TL0 = (65536 - 50000) % 256;
EA = 1;// 开总中断
ET0 = 1;
while (1) {
delay(50);// 延时50ms
// 其他操作
}
}
```
读取并输出非零整数
```c
include
int main() {
int n;
printf("请输入一个整数(输入0结束): ");
while (scanf("%d", &n) == 1 && n != 0) {
printf("你输入的是: %d\n", n);
}
return 0;
}
```
删除数组中的0元素
```c
include
void CompactIntegers(int a[], int n) {
int i, j;
for (i = 0; i < n;) {
if (a[i] == 0) {
for (j = i; j < n - 1; j++) {
a[j] = a[j + 1];
}
n--;
} else {
i++;
}
}
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
}
int main() {
int n, i;
int *a;
printf("请输入整数的个数: ");
scanf("%d", &n);
a = (int *)malloc(n * sizeof(int));
for (i = 0; i < n; i++) {
scanf("%d", a + i);
}
printf("原始数组: ");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
CompactIntegers(a, n);
printf("删除0后的数组: ");
for (i = 0; i < n; i++) {
printf("%d ", a[i]);
}
printf("\n");
free(a);
return 0;
}
```
将字符串转换为整数
```c
include
int main() {
char a[] = "12345";
char *p;
int s = 0;
for (p = a; *p != '\0'; p++) {
s = 10 * s + *p - '0';
}
printf("转换后的整数是: %d\n", s);
return 0;
}
```
查找以0结尾的最长子序列(Java示例):