Shell 在Mac终端上C编译器的无限循环中创建并行算术运算符 #包括 #包括 #包括 #包括 真空总管(真空) { while(1)//无限循环 { INTA,b; printf(“给我一个整数a:”); scanf(“%d”和“&a”); printf(“给我一个整数b:”); scanf(“%d”和“b”); 总和=&a+&b; 产品=&a*&b; 差异=&a-&b; echo这是您的和、积和差: printf(“总和:%d+d%=%d.\n”,a、b、总和); printf(“产品:%d*d%=%d.\n”,a、b、产品); printf(“差异:%d-d%=%d.\n”、a、b、差异); 返回0; } }
我的void main(void)在第6行不断出现语法错误Shell 在Mac终端上C编译器的无限循环中创建并行算术运算符 #包括 #包括 #包括 #包括 真空总管(真空) { while(1)//无限循环 { INTA,b; printf(“给我一个整数a:”); scanf(“%d”和“&a”); printf(“给我一个整数b:”); scanf(“%d”和“b”); 总和=&a+&b; 产品=&a*&b; 差异=&a-&b; echo这是您的和、积和差: printf(“总和:%d+d%=%d.\n”,a、b、总和); printf(“产品:%d*d%=%d.\n”,a、b、产品); printf(“差异:%d-d%=%d.\n”、a、b、差异); 返回0; } },shell,command-line,scripting,c,Shell,Command Line,Scripting,C,我的void main(void)在第6行不断出现语法错误 使用子进程创建3个并行进程。此程序存在一系列问题,并且没有并行执行任何操作: #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> void main (void) { while(1) // infinite loop {
使用子进程创建3个并行进程。此程序存在一系列问题,并且没有并行执行任何操作:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
void main (void)
{
while(1) // infinite loop
{
int a, b;
printf("Give me an integer a: ");
scanf("%d",&a);
printf("Give me an integer b: ");
scanf("%d",&b);
sum = &a + &b;
product = &a * &b;
difference = &a - &b;
echo Here is your sum, product, and difference:
printf("Sum: %d + d% = %d.\n", a, b, sum);
printf("Product: %d * d% = %d.\n", a, b, product);
printf("Difference: %d - d% = %d.\n", a, b, difference);
return 0;
}
}
这通常会编译,但根据C标准,这是不正确的。不带参数的main()
的签名应该是int main(void)
您使用的是a
和b
的地址,而不是值,因此对于sum
、product
和difference
(除了没有定义最后三个之外)您总是会得到相同的结果。正确的版本应该是:
sum = &a + &b;
product = &a * &b;
difference = &a - &b;
echo这是您的和、积和差:
这不是一个C构造,因此编译器会对此进行抱怨。使用printf()
虽然您已经指出循环应该是无限的,但它不是无限的,因为您在循环结束时退出了函数
sum = &a + &b;
product = &a * &b;
difference = &a - &b;
sum = a + b;
product = a * b;
difference = a - b;
return 0;