数组:
094 求个元素之和
使用二维数组保存一个3行3列的数组,利用双重循环访问数组的每一个元素,然后对每个元素进行累加计算。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int i, j, a[3][3], sum = 0;
for(i =0; i < 3; i++)
{
for(j = 0; j < 3 ; j++)
{
scanf("%d", &a[i][j]);
}
}
for(i =0; i < 3; i++)
{
for(j = 0; j < 3 ; j++)
{
printf(" %4d", a[i][j]);
sum += a[i][j];
}
printf("\n");
}
printf("sum = %d\n", sum);
printf("\n");
}
095 使用二维数组保存数据
实现从键盘为二维数组元素赋值,显示二维数组
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int i, j, a[2][3];
for(i =0; i < 2; i++)
{
for(j = 0; j < 3 ; j++)
{
printf(" a[%d][%d]:", i, j);
scanf("%d", &a[i][j]);
}
}
for(i =0; i < 2; i++)
{
for(j = 0; j < 3 ; j++)
{
printf(" %4d", a[i][j]);
}
printf("\n");
}
printf("\n");
}
096 计算字符串中有几个单词
输入一行字符,然后统计其中有多少单词,要求单词之间用空格分隔开,最后的字符不能成为空格。
1 由gets()获得字符串
判断输入的字符数组:第一个字符是否为结束符/空格
2 用while()循环统计字符数组空格,来统计单词
_______me_____________
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
char a[100];
int i = 0, count = 1;
gets(a);
while(a[i] != '\0')
{
if(a[i] == ' ')
{
count++;
}
i++;
}
printf("%d", count);
printf("\n");
}
————————官方——————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
char astring[100];
int index = 0, iword = 1;
char cblack;
gets(astring);
if(astring[0] == '\0')
{
printf("There is no char!\n");
}
else if(astring[0] == ' ')
{
printf("first char just is a black!\n");
}
else
{
for(index = 0; astring[index] != '\0'; index++)
{
cblack = astring[index];
if(cblack ==' ')
{
iword++;
}
}
printf("%d",iword);
}
printf("\n");
}
097 不使用strcpy()函数实现字符串复制功能
不使用strcpy()函数实现字符串复制功能,主要使用gets()和puts()函数来实现字符的获取和输出
这里a字符串复制到b字符串,a字符串不可能完全填满100个字符,可以用结束符判断终止!
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
char astring[100], bstring[100];
int i = 0;
gets(astring);
while(astring[i] != '\0')
{
bstring[i] = astring[i];
i++;
}
puts(bstring);
printf("\n");
}
098 逆序存放数据
任意输入5个数据,编程实现将这5个数据逆序存放。
定义数组b,将数组a的值逆序保存到数组b中。
、缺点:多定义了一个数组,造成冗余
——————————ME——————————————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int a[5], i, b[5], j;
for(i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
for(i = 0,j = 4; i < 5; i++, j--)
{
b[i] = a[j];
}
for(i = 0; i < 5; i++)
{
printf("%4d", b[i]);
}
printf("\n");
}
中心点左右对调,
——————————官方——————————————
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int a[5], i, temp;
for(i = 0; i < 5; i++)
{
scanf("%d", &a[i]);
}
for(i = 0; i < 5; i++)
{
printf("%4d", a[i]);
}
printf("\n");
for(i = 0; i < 2; i++)
{
temp = a[i];
a[i] = a[4 - i];
a[4 - i] temp;
}
for(i = 0; i < 5; i++)
{
printf("%4d", a[i]);
}
printf("\n");
}
099 相邻元素之和
从键盘输入10个整数存到数组a,编程求出a中相邻2元素之和,并将其保存在数组b中
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int a[10], b[10], i, temp;
for(i = 0; i < 10; i++)
{
scanf("%d", &a[i]);
}
for(i = 0; i < 9; i++)
{
b[i] = a[i] + a[i + 1];
}
for(i = 0; i < 9; i++)
{
printf("%4d", b[i]);
}
printf("\n");
}
100 选票统计
竞选班长,共3位候选,输入参加选举人数及每个人选举内容,输出3个候选人最终的得票数及无效选票数。
#include<stdio.h>
#include<math.h>
#include<time.h>
#include<stdlib.h>
#include<string.h>
main()
{
int x[100], i, num;
int a = 0, b = 0, c = 0, d = 0;
printf("输入选举人\n");
scanf("%d", &num);
for(i = 0; i <num; i++)
{
scanf("%d", &x[i]);
}
for(i = 0; i < num; i++)
{
if(x[i] == 1)
{
a++;
}
else if(x[i] == 2)
{
b++;
}
else if(x[i] == 3)
{
c++;
}
else
{
d++;
}
}
printf("a候选人票数:%d\n", a);
printf("b候选人票数:%d\n", b);
printf("c候选人票数:%d\n", c);
printf("无效票数:%d\n", c);
printf("\n");
}
————————
参考书籍: C语言经典编程282例
编译软件:Dev-C++