#include<stdio.h>
#include<string.h>
union data{
char sex;
int virsta;
};
struct person {
char name;
char starea;
union data a;
};
void main(void)
{
struct person x[100];
int i,n,j;
printf("Numarul persoanelor:");
scanf("%d",&n); j=0;
for(i=0;i<=n-1;i++){
printf("Nume:\n");
scanf("%s",&x.name);
printf("Introdu virsta:");
scanf("%d",&x.a.virsta);
printf("Sex(M/F):");
scanf("%s",&x.a.sex);
printf("Starea Civila:");
scanf("%s",&x.starea);
}
for(i=0;i<=n-1;i++)
if(x.a.virsta>=18 && x.a.virsta<=62) j=j+1;
printf("Sint %d persoane cu virsta intre 18 si 62",j);
}
он должен показывать сколько людей имеют возраст между 18 и 62 года но чтото не работает помогите
Другие языки программирования и технологии
помогите с C програм не выводит результаты
#include <stdio.h>
#include <conio.h>
#define N 5
/*
* union в вашем случае не подойдёт
* его можно использовать только в случае
* взаимоисключающей ситуации, то есть
* вы можете использовать либо virsta,
* либо sex, что не логично.
*
* Полезно использовать, например, для платёжных
* средств, когда клиент расчитывается либо
* кредткой, либо - чеком, либо - наличными.
*
* Однако и такая реализация неэффективна, в том
* случае, если клиент захочет часть выплатить
* наличными, а вторую часть кредиткой
*/
struct person
{
char name[16];
int virsta;
char sex;
char starea[24];
};
void main()
{
struct person x[N];
int n, k = 0;
for (n = 0; n < N; n++)
{
printf("Nume: ");
scanf("%s", x[n].name);
printf("Introdu virsta: ");
scanf("%d", &x[n].virsta);
printf("Sex(M/F): ");
fflush(stdin);
scanf("%c", &x[n].sex);
printf("Starea Civila: ");
scanf("%s", x[n].starea);
printf("\n");
}
for (n = 0; n < N; n++)
if (x[n].virsta >= 18 && x[n].virsta <= 62)
k++;
printf("Sint %d persoane cu virsta intre 18 si 62", k);
getch();
}
#include <conio.h>
#define N 5
/*
* union в вашем случае не подойдёт
* его можно использовать только в случае
* взаимоисключающей ситуации, то есть
* вы можете использовать либо virsta,
* либо sex, что не логично.
*
* Полезно использовать, например, для платёжных
* средств, когда клиент расчитывается либо
* кредткой, либо - чеком, либо - наличными.
*
* Однако и такая реализация неэффективна, в том
* случае, если клиент захочет часть выплатить
* наличными, а вторую часть кредиткой
*/
struct person
{
char name[16];
int virsta;
char sex;
char starea[24];
};
void main()
{
struct person x[N];
int n, k = 0;
for (n = 0; n < N; n++)
{
printf("Nume: ");
scanf("%s", x[n].name);
printf("Introdu virsta: ");
scanf("%d", &x[n].virsta);
printf("Sex(M/F): ");
fflush(stdin);
scanf("%c", &x[n].sex);
printf("Starea Civila: ");
scanf("%s", x[n].starea);
printf("\n");
}
for (n = 0; n < N; n++)
if (x[n].virsta >= 18 && x[n].virsta <= 62)
k++;
printf("Sint %d persoane cu virsta intre 18 si 62", k);
getch();
}
1. Здесь, как видите, код передавать нельзя, i в разного рода скобках воспринимается как тег шрифт курсив.
2. Вы объявляете тип union - объединение, т. е. хранение в памяти по одному и тому же адресу "разных типов данных" - точнее, к этим данным в этом случае можно будет обращаться, как к разным типам, но смысла в этом последующий текст не открывает, наоборот, Вы последовательно заполняете память сначала как int, и тут же как текстовую строку, естественно, введенное перед этим число будет затерто - ведь union использует физически одну и ту же область памяти
3. Ввиду п. 1 дальше - через почту.
2. Вы объявляете тип union - объединение, т. е. хранение в памяти по одному и тому же адресу "разных типов данных" - точнее, к этим данным в этом случае можно будет обращаться, как к разным типам, но смысла в этом последующий текст не открывает, наоборот, Вы последовательно заполняете память сначала как int, и тут же как текстовую строку, естественно, введенное перед этим число будет затерто - ведь union использует физически одну и ту же область памяти
3. Ввиду п. 1 дальше - через почту.
Похожие вопросы
- Как можно написать программу на языке C, которая будет выводить числа от 1 до 1000 без if, switch, do, while, for, goto?
- Помогите срочно C#
- Напишите программу, которая находит максимальное среди чисел, записанных в файле, и выводит результат в другой файл.
- Люди, помогите скачать C++!!
- помогите с C++
- помогите, пожалуйста, c делфи!
- Помогите Диск C сам заполняеться вот например выйду и диска памать 6гб опять зайду уже 5.65гб и вотак до 1гб помогите
- помогите массив c#.
- Помогите по C#
- Помогите с C++