|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 changzuo 于 2020-3-7 20:16 编辑
我想用C语言统计班级交作业的人数和未交的,定义一个结构体,一个字符串数组(存储名字)一个整型变量(如果是零则没有交作业,如果是一则交了作业),输入名字,完成时输入"done"表示结束,输出未交作业的人名。
代码写完发现不对,实在不知道怎么改了。
代码如下:
#include<stdio.h>
#include<stdlib.h>
#define N 5
struct book
{
char name[10];
int homewk;
};
struct temp
{
char name[10];
};
struct book books[N] = {{"lll", 0},{"lll", 0},{"lll", 0},{"lll", 0}};
int find(char *a, char *b);
int main(int argc, char const *argv[])
{
int i, j;
struct temp tmp[N];
const char* done = "done";
for(i=0;i<N;i++){
gets(tmp[i].name);
if(find(tmp[i].name, done)){
break;
}
}
for(i=0; i<N;i++){
for(j=0;j<N;j++){
books[j].homewk = find(tmp[i].name, books[j].name);
}
}
i=0;
while(!books[i].homewk){
printf("%s\n", books[i].name);
}
return 0;
}
int find(char * a, char * b){
int result = 0;
int i;
for(i=0; a[i] != '\0' && b[i] != '\0'; ){
if(a[i]==b[i]) i++;
else {
result = 0;
break;
}
}
if(a[i]=='\0'&&b[i]=='\0')
result = 1;
return result;
}
请吊大的鱼油们看看哪里有问题
- #include <stdio.h>
- #include <string.h>
- #define MAX 3 //班上人数
- int main(void)
- {
- typedef struct Stu
- {
- char name[10];
- int homework;
- }
- Stu;
- Stu stu[MAX] = {"1", 0, "2", 0, "3", 0};
- char name[10];
- int i, j;
- for(i = 0; i < MAX; i++)
- {
- printf("请输入第%d个交作业的人(done退出):", i + 1);
- scanf("%s", name);
- getchar();
- if(!strcmp(name, "done"))
- {
- break;
- }
- for(j = 0; j < MAX; j++)
- {
- if(!strcmp(name, stu[j].name))
- {
- stu[j].homework = 1;
- }
- }
- }
- for(i = 0; i < MAX; i++)
- {
- if(stu[i].homework == 0)
- {
- printf("%s没交作业!\n", stu[i].name);
- }
- }
-
- return 0;
- }
复制代码
兄弟加油哥只能帮你到这里了
|
|