C语言存放多个字符串

存放一个字符串

1.字符指针:char *str="hello";

2.字符数组:char str[ ]="hello";

存放多个字符串

1.二维字符串数组:

char name[4][10]={"Hello","Word","I","am"};

例如输入10个字符串,每个字符串最大长度不超过100,读入字符串如下:

#include<stdio.h>
int main(){
   char str[10][100];
   int i;
for(i=0;i<10;i++)
scanf("%s",str[i]);

for(i=0;i<10;i++)
printf("%s\n",str[i]);
return 0;
}

2.指针数组

char *name[4]={"Hello","Word","I","am"};

PAT乙级题1009说反话

#include<stdio.h>
int main(){
   char str[100][100];
   int i=0,j;
while(scanf("%s", str[i]) != EOF)//在黑框中手动输入时,系统并不知道什么时候到达了所谓的“文件末尾“,因此需要在下一行开头用<Ctrl + Z >组合键,然后按< Enter >键的方式来告诉系统已经到了 EOF,这样系统才会结束 while
i++;                           //while((str[i]=getchar())!='\n')

for(j=i-1;j>=0;j--){
	printf("%s",str[j]);
	if(j!=0)
	printf(" ");
} 

return 0;
}

 

  • 25
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
生成圆周率的常用算法有很多,其中较为简单的是莱布尼茨公式(Leibniz formula): π / 4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 + …… 根据该公式,我们可以不断累加前面的项来逼近圆周率。具体实现如下: ```c #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_DIGITS 1000000 // 圆周率的最大位数 int main() { int i, j, k; int sign = 1; // 符号位 int digit = 0; // 当前计算到的圆周率位数 char pi[MAX_DIGITS + 1] = "3.14"; // 初始化为 3.14 char tmp[MAX_DIGITS + 1]; // 临时存放当前项的结果 // 计算圆周率 for (i = 3; digit < MAX_DIGITS; i += 2) { sprintf(tmp, "%.2f", 4.0 / i * sign); // 计算当前项并转换为字符串 sign = -sign; // 更新符号位 for (j = 0; tmp[j] != '.'; j++) // 将当前项的整数部分加入 pi 中 { if (digit < MAX_DIGITS) { pi[digit++] = tmp[j]; } } if (digit < MAX_DIGITS) { pi[digit++] = tmp[j++]; // 将小数点加入 pi 中 for (k = 0; k < 2 && tmp[j + k] != '\0'; k++) // 将当前项的小数部分加入 pi 中 { pi[digit++] = tmp[j + k]; } } } pi[digit] = '\0'; // 将 pi 结尾 printf("圆周率的前 %d 位为:\n", MAX_DIGITS); printf("%s\n", pi); return 0; } ``` 在程序中,我们使用 sprintf 函数将计算出的当前项转换为字符串,然后将其整数部分加入 pi 中,最后加入小数点和小数部分。由于圆周率的位数可能非常大,我们需要使用一个字符数组来存储。在本程序中,我们假设圆周率的位数不超过 100 万位。 需要注意的是,由于计算机的浮点数精度限制,使用莱布尼茨公式计算圆周率的位数可能会受到一定的影响。如果需要计算更高精度的圆周率,可以使用其他算法,如马青公式(Machin formula)、高精度计算等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值