5.使用带参数的主函数编写一个程序,假设编译后可执行程序的名称为12_5,使用命令行输入一组整数,输出第一行为整数的个数,第二行为其中的素数,第三行为非素数。
【测试数据】
在命令行输入:
13_7 2 123 45 5 6 17 8 9
【运行结果】
8
2 5 17
123 45 6 8 9
#include <string.h>
#include <stdio.h>
int main(int argc, char const *argv[]) //argc,参数数量,argv参数,argv[0]是命令本身
{
printf("%d\n", argc - 1);
int *su = (int *)malloc(sizeof(int) * argc - 1);
int *num = (int *)malloc(sizeof(int) * argc - 1);
int sucnt = 0, numcnt = 0, t, i, j;
for (i = 1; i < argc; i++)
{
t = atoi(argv[i]);
for (j = 2; j < t; j++)
if (t % j == 0)
break;
if (j == t)
su[sucnt++] = t;
else
num[numcnt++] = t;
}
for (i = 0; i < sucnt; i++)
printf("%d ", su[i]);
printf("\n");
for (i = 0; i < numcnt; i++)
printf("%d ", num[i]);
return 0;
}