1,求边长为a的正方形外接圆面积
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("%d", a * a);
}
2,求5!
#include<stdio.h>
int main()
{
int i,sum=1;
for (i = 1; i < 6; i++)
{
sum *= i;
}
printf("%d", sum);
}
3,输入50名同学的姓名和一门课的成绩,输出成绩大于等于80分同学的姓名和成绩
我这里遇到了一个问题:无法输出姓名和成绩,我经过以下尝试:
1.0版
#include <stdio.h>
int main()
{
int i;
char arr1[50];
int arr2[50];
printf("请输入五十名同学的姓名:\n");
for (i = 0; i < 3; i++)
{
scanf("%s", arr1[i]);//这里用scanf实现整个字符串的输入
}
printf("请输入五十名同学的成绩:\n");
for (i = 0; i < 3; i++)
{
scanf("%d", arr2[i]);
}
printf("成绩大于等于80分的同学姓名和成绩为:>\n");
for (i = 0; i < 3; i++)
{
printf("姓名: % s 成绩:%d\n", arr1[i],arr2[i]);
}
}
不能得到解决,在c语言程序书132页中,用scanf( )函数输入字符串是,遇到空白字符(空格,回车符,制表符)时停止,即空白字符遇到当前字符串输入结束
2.0版
#include <stdio.h>
int main()
{
int i,j;
int arr1[50][20] = { 0 }, arr2[50] = { 0 };
printf("请输入五十名同学的姓名:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; arr1[i][j] != '\0'; j++)
{
gets(arr1[i][j]);
}
}
printf("请输入五十名同学的成绩:\n");
for (i = 0; i < 3; i++)
{
scanf("%d", arr2[i]);
}
printf("成绩大于等于80分的同学姓名和成绩为:>\n");
for (i = 0; i < 3; i++)
{
if (arr2[i] >= 80)
{
printf("姓名: % s 成绩:%d\n", arr1[i][j], arr2[i]);
}
}
}
不能得到解决,这题我以为是二维数组 每行表示一名同学 列表示每名同学的姓名,多少名同学和字符是两种不同类型名,即需要用到结构体
关于结构体的注意事项:
a.在为结构体名称命名时,需要遵循c语言标识符命名规则:以字母或下划线为开头,后面可以跟字母,数字或下划线.
b.结构体数据类型的定义以分号结束
c.结构体数据类型中的每个成员不是变量定义,系统不会为其分配内存单元,仅仅告知系统该结构是由哪些类型的成员组成,并当作一个整体来处理
d。结构体数据类型可以嵌套定义,但要注意结构体数据类型定义的先后关系,引用某数据类型时必须先定义该结构体类型
3.0版
#include <stdio.h>
struct student
{
char name[20];
float score;
};
int main()
{
int i,j;
struct student arr[3];
printf("请输入五十名同学的姓名,成绩:\n");
for (i = 0; i < 3; i++)
{
scanf("%s,%f", arr[i].name,&arr[i].score);
}
printf("成绩大于等于80分的同学姓名和成绩为:>\n");
for (i = 0; i < 3; i++)
{
if (arr[i].score >= 80.0)
{
printf("姓名: % s 成绩:%f\n", arr[i].name ,arr[i].score);
}
}
}
还没结束,因为输入的是字符串 ,","也是一个字符,即不能使用逗号作为间隔
#include <stdio.h> struct student { char name[20]; float score; }; int main() { int i,j; struct student arr[3]; printf("请输入五十名同学的姓名,成绩:\n"); for (i = 0; i < 3; i++) { scanf("%s %f", arr[i].name,&arr[i].score); } printf("成绩大于等于80分的同学姓名和成绩为:>\n"); for (i = 0; i < 3; i++) { if (arr[i].score >= 80.0) { printf("姓名: % s 成绩:%f\n", arr[i].name ,arr[i].score); } } }
4,求1-1/2+1/3-1/4+……+1/99-1/100
int main()
{
int i;
int sign = 1;
float sum = 0;
for (i = 1; i < 101; i++)
{
sum += sign * (1.0 / i);
sign *= -1;
}
printf("%f", sum);
}
5,九九乘法表
#include<stdio.h>
int main()
{
int i, j;
for (i = 1; i < 10; i++)
{
for (j = 1; j <=i; j++)
{
printf("%d*%d=%-4d", i, j, i * j);
}
printf("\n");
}
}