你好,我是个C语言的初学者,有几道题目想问你下,希望你帮我看看,谢谢!麻烦你了

2024-12-05 14:29:53
推荐回答(4个)
回答1:

#include
#include
int prime(int n)
{
int m,i=2,t;
t=(int)sqrt(n);/*A 这个条件仅仅只是节省时间用到;因为一个素数从2开始除,如果除到它本身的开方还没有整除的数出现说明它是素数*/
for(;i<=t;i++)
if(n%i==0)//若此条件成立说明n不是素数,既然判断出他不是素数那么就给他返回一个0;说明函数返回的值是0就证明n不是素数;
{
m=0;
break;/*既然都判断出来n不是素数那么就不用执行for了;*/
}
if(i>t)
/*如果这里成立,说明i已经超过n的开方,就说明n是素数了,(为什么??应该知道吧!/不懂就看解释A)给它返回一个1,就说明说明函数返回的值是1就证明n是素数;*/
m=1;
else continue;
return m;
}
void main()
{
int n;
int i;
printf("请输入你要判断的数!\n");
scanf("%d",&n);
if(prime(n))
printf("是素数!\n");
else
printf("不是素数!\n");
printf("输出200-300之间的素数:\n");
for(i=200;i<=300;i++)
{
if(prime(i))/*利用已经写好的函数判断i是否是素数!如果函数返回1证明是素数则输出!否则(即运行到else)continue;*/
printf("%-4d",i);
else continue;
}
printf("\n");
}
/*希望你能看的懂,看不懂再找我!

回答2:

1,
#include

int main(void)
{
char s1[128] = "Computer", s2[] = "Language";
int i = 0, j = 0;

while (s1[i]) i++;
while (s2[j]) s1[i++] = s2[j++];
// s[i] = '\0'; 是没必要的!!!
puts(s1);
return 0;
}

2,

#include

int main(void)
{
char s[512] = "C is a general purpose, procedural, imperative "
"computer programming language developed in 1972 by Dennis"
"Ritchie at the Bell Telephone Laboratories for use with "
"the Unix operating system.";

int a = 0, b = 0, c = 0, d = 0, e = 0;
int i = 0;

while (s[i])
{
if (s[i] >= 'A' && s[i] <= 'Z') a++;
if (s[i] >= 'a' && s[i] <= 'z') b++;
if (s[i] >= '0' && s[i] <= '9') c++;
if (s[i] == ' ') d++;
if (s[i] == ',') e++;

i++;
}

printf("大写字母:%d,小写字母:%d,数字:%d,空格:%d,逗号:%d.\n",
a, b, c, d, e);
return 0;
}

3,
#include

int foo(int a[], int n)
{
int i, sum = 0;
for (i = 0; i < n; i++)
if (a[i] % 2 == 0) sum += a[i];
return sum;
}
int main(void)
{
int a[10], i;
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
printf("sum = %d\n", foo(a, 10));
return 0;
}

4,

#include

int foo(int a)
{
int flag = 1, i;
for (i = 2; i * i <= a; i++)
if (a % i == 0)
{
flag = 0;
break;
}
return flag;
}
int main(void)
{
int a;
scanf("%d", &a);
if (foo(a)) printf("%d 是素数\n", a);
else printf("%d 不是素数\n", a);

return 0;
}

5,

#include

int main(void)
{
int list[10], i, *p = list;
for (i = 0; i < 10; i++)
scanf("%d", &list[i]);
for (i = 9; i >= 0; i--)
printf("%d ", *(p + i));

return 0;
}

6,
#include

int mystrlen(char *p)
{
int len = 0;
while (p[len++]);
return len - 1;
}
int main(void)
{
printf("%d\n", mystrlen("I am a student"));
return 0;
}

7,
#include

int cstrcmp(char *p1, char *p2)
{
while (*p1 || *p2)
{
if (*p1 > *p2) return 1;
else if (*p1 < *p2) return -1;
p1++;
p2++;
}
return 0;
}

回答3:

1

回答4:

忒简单了吧