Психологи утверждают, что для хорошего настроения нужно ежедневно обнимать 8 человек. Ну, или дать одному в морду.
читать дальше#include<stdio.h>
int main(void)
/*{
int a;
printf("Vvedite 4islo:");
scanf("%d",&a);
if(a>=28&&a<=31)printf("OK\n\n");
else printf("No\n\n");
return 0;
}*/
/*
{
int a,b;
printf("Vvedite 2 dvuzna4nyh 4isla\n");
scanf("%d%d",&a,&b);
if(a>9&&a<100&&b>9&&b<100)
{
if(a/10+a%10>b/10+b%10)printf("%d\t%d\n\n",a,a/10);
else if(a/10+a%10 else printf("No\n\n");
}
else printf("Error\n\n");
return 0;
}*//*
{
int a,b,c;
printf("Vvedite kol-vo vzroslyh,detey i no4ey\n");
scanf("%d%d%d",&a,&b,&c);
if(a+b<6)
{
if(a!=0&&b!=0)printf("%d\n\n",(a*300-100+b*100-100)*c);
else if(a!=0)printf("%d\n\n",(a*300-100)*c);
else printf("Net vzroslyh\n\n");
}
else printf("Mnogo narodu\n\n");
return 0;
}*//*
{
int a,b,c;
printf("Vvedite 3 4isla:\n");
scanf("%d%d%d",&a,&b,&c);
if(a {
if(b<c)printf("%d %d %d\n\n",a,b,c);
else printf("%d %d %d\n\n",a,c,b);
}
else if(b {
if(a<c)printf("%d %d %d\n\n",b,a,c);
else printf("%d %d %d\n\n",b,c,a);
}
else if(c {
if(b else printf("%d %d %d\n\n",c,a,b);
}
return 0;
}*/
/*
{
int a,b,c,d;
printf("Vvedite 4isla\n");
scanf("%d%d%d",&a,&b,&c);
if(b {
d=a;
a=b;
if(d<c) b=d;
else
{
b=c;
c=d;
}
}
else if(c {
d=a;
a=c;
if(d>b) c=d;
else
{
c=b;
b=d;
}
}
else if(b>c)
{
d=b;
b=c;
c=d;
}
printf("\n%d\t%d\t%d\n",a,b,c);
return 0;
}*/
/*
{
int i;
for(i=1;i<=15;i++)printf("Sliha\n");
return 0;
}*/
/*
{
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=a;
a=b;
b=d;
}
if(b>c)
{
d=b;
b=c;
c=d;
}
if(a>b)
{
d=a;
a=b;
b=d;
}
printf("%d %d %d\n",a,b,c);
return 0;
}
*//*
{
int i,a;
scanf("%d",&a);
for(i=1;i<=a;i++)printf("%d\n",i);
return 0;
}*//*
{
for(int i=0;i<=20;i=i+2)printf("%d\n",i);
return 0;
}*//*
{
int a1,a2,a3,a4,a5,a6,a7,a8,sum;
scanf("%d%d%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8);
sum=a1+(a2*2)/10+(a2*2)%10+a3+(a4*2)/10+(a4*2)%10+a5+(a6*2)/10+(a6*2)%10+a7+(a8*2)/10+(a8*2)%10;
if(sum%10==0)printf("0\n\n");
else if(sum>0&&sum<10)printf("%d\n\n",10-sum);
else if(sum>10&&sum<20)printf("%d\n\n",20-sum);
else if(sum>20&&sum<30)printf("%d\n\n",30-sum);
else if(sum>30&&sum<40)printf("%d\n\n",40-sum);
else if(sum>40&&sum<50)printf("%d\n\n",50-sum);
else if(sum>50&&sum<60)printf("%d\n\n",60-sum);
else if(sum>60&&sum<70)printf("%d\n\n",70-sum);
else if(sum>70&&sum<80)printf("%d\n\n",80-sum);
return 0;
}*//*
{
int b=1,a(b),sum,;
for(;b<9;b++)
{
scanf("%d",&a(b));
if(a(b)%2==0)a(b)*=2;
a(b)+=sum;
}
if(sum%10==0)printf("0\n\n");
else printf("%d\n\n",(sum-sum%10+10)-sum);
return 0;
}*//*
{
int b,ab,sum=0,i;
for(b=1;b<=8;b++)
{
scanf("%d",&ab);
if(b%2==0)
{
ab*=2;
if(ab>9)ab=ab/10+ab%10;
}
sum+=ab;
}
if(sum%10==0)printf("0\n\n");
else for(i=10;i<=80;i+=10)if(i>sum)
{
printf("%d\n\n",i-sum);
break;
}
return 0;
}*//*
{
int b,ab;
for(b=1;b<=6;b++)
{
scanf("%d",&ab);
if(ab/1000==ab%10&&ab/100%10==ab/10%10)printf("Yes\n\n");
else printf("No\n\n");
}
return 0;
}*//*
{
int b,ab,cb;
for(b=1;b<=6;b++)
{
scanf("%d%d",&ab,&cb);
if(ab/10+ab%10==cb/10+cb%10)printf("\n%d\n\n",ab/10+ab%10);
}
return 0;
}
*/
/*
{
int b,ab,cb;
for(b=1;b<=6;b++)
{
scanf("%d%d",&ab,&cb);
if(ab-cb>-10&&ab-cb<10)printf("\n%d %d\n",ab,cb);
}
return 0;
}*//*
{
float i,sum=0;
for(i=2;i<6;i++)sum+=i/(i+1);
printf("%.2f\n\n",sum);
return 0;
}*//*
{
float i,a=0,b=1;
for(i=1;i<=5;i++)
{
a+=i;
b*=i;
}
printf("%f\n\n",a/b);
return 0;
}*//*
{
int i;
float sum=0;
for(i=3;i<=11;i+=2)sum+=1/(float)i;
printf("%f\n\n",sum);
return 0;
}*//*
{
int a,sum=0,z=1;
for(a=1;a<=8;a++)
{
sum+=a*z;
z*=-1;
}
printf("%d\n\n",sum);
return 0;
}*//*
{
int i,a,b;
float sum=8;
for(a=1,b=3,i=1;b<=11;a++,b+=2,i++)
{
if(i%2==0)sum+=(float)(0-a)/b;
else sum+=(float)a/b;
}
printf("%f\n\n",sum);
return 0;
}*//*
{
int a,b,z=1;
float sum=8;
for(a=1,b=3;b<=11;a++,b+=2)
{
sum+=(float)a*z/b;
z*=-1;
}
printf("%f\n\n",sum);
return 0;
}
*//*
{
int i;
for(i=1;i<11;i++)
{
if(i==3||i==7)continue;
printf("%d\n",i);
}
return 0;
}*//*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<5;i++)
{
scanf("%d\n",&n);
if(n>o)s++;
o=n;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*//*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<6;i++)
{
scanf("%d\n",&n);
if(n<o)break;
n=o
s++;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*/
/*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<5;i++)
{
scanf("%d\n",&n);
if(n-o!=1)break;
s++;
o=n;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*//*
{
int i,sum;
scanf("%d",&sum)
while(sum<100)
{
scanf("%d",&i);
sum+=i;
}
printf("%d\n",sum);
return 0;
}*//*
{
int s=0,a;
scanf("%d",&a);
while(a>0)
{
s++;
a/=10;
}
printf("%d\n",s);
return 0;
}*//*
{
int a,b,sum=0;
scanf("%d",&a);
b=a;
while(a>0)
{
sum+=a%10;
a/=10;
}
printf("%d\n%d\n",sum,b);
return 0;
}*/
/*
{
int a,b;
scanf("%d",&b);
if(b!=-1)
{
while(a!=-1)
{
scanf("%d",&a);
if(a>b&&a!=-1)b=a;
}
}
printf("%d\n",b);
return 0;
}
*//*
{
int a,b;
scanf("%d",&a);
b=a%10;
while(a>0)
{
a/=10;
if(a%10>b)b=a%10;
}
printf("%d\n",b);
return 0;
}
*//*
#include<iostream.h>
void(main)*//*
{
int a,sum=0,x=0;
scanf("%d",&a);
while(a!=0)
{
for(int i=a-1;i>1;i--)
{
if(a%i==0)
{
sum+=a;
continue;
}
else
{
x+=a;
break;
}
}
printf("%d\n",x);
scanf("%d",&a);
}
printf("%d\n",sum);
return 0;
}*//*
{
int a,s1=0,s2=0,sum=0;
scanf("%d",&a);
while(a!=0)
{
for(int i=a-1;i>1;i--)
{
if(a%i==0)s1++;
if(a%i!=0||a==2||a==1)s2++;
}
if(s1>0)sum+=a;
if(s2==a-2)printf("%d\n",a);
scanf("%d",&a);
s1=s2=0;
}
printf("%d\n",sum);
return 0;
}
*//*
{
int a,i,sum=0;
for(i=1;i<=10;i++)
{
scanf("%d",&a);
sum+=a;
}
if(sum%2==0)printf("Yes\n");
else printf("No\n");
return 0;
}*//*
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a/1000+a/100%10+b%10+b/10%10);
return 0;
}*/
/*
{
int a,sch=0;
scanf("%d",&a);
while(a!=0)
{
a/=10;
sch++;
}
printf("%d\n\n",sch);
return 0;
}
*//*
{
int ar[10];
for(int i=0;i<10;i++)
{
ar[i]=i;
printf ("%d\n",ar[i]);
}
return 0;
}*/
/*
{
int ar[6],sum=0;
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
sum+=ar[i];
}
printf("%f\n",sum/(i*1.0));
return 0;
}
*//*
{
int ar[6],arr[6];
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
arr[i]=10-ar[i];
}
for(i=0;i<6;i++)printf("%d\n",arr[i]);
return 0;
}*/
/*
{
int ar[8],arr[8],arrr[8];
int a=0,b=0;
for(int i=0;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]>=0)
{
arr[a]=ar[i];
a++;
}
else
{
arrr[b]=ar[i];
b++;
}
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
for(i=0;i return 0;
}
*//*
{
int ar[8],arr[8],b=0;
for(int i=0;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]%2==0)
{
arr[b]=ar[i];
b++;
}
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
return 0;
}*/
/*
{
int ar[8], arr[14],b=0,s;
scanf("%d",&ar[0]);
s=ar[0];
for(int i=1;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]==s)
{
arr[b]=ar[i];
arr[b+1]=s;
b+=2;
}
s=ar[i];
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
return 0;
}
*//*
{
int ar[6],s=0;
for(int i=0;i<6;i++)scanf("%d",&ar[i]);
for(i=0;i<5;i+=2)if(ar[i]==ar[i+1])s++;
if(s==3)printf("Good\n\n");
else printf("Bad\n\n");
return 0;
}
*/
/*
1 0 0==1
1 1 1==0
2 2 2==3
2 3 3==2
3 4 4==5
3 5 5==4
*/
{
int ar[6],arr[6],b=0;
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
if(ar[i]>9&&ar[i]<100)b++;
}
for(i=0;i for(i=0;i return 0;
}
Д/З
читать дальше
№1
Написать программу, которая вводит шесть чисел в массив с размером в шесть.Программа проверяет, если все соседние ячейки одинаковые, и выводит на экран слово "Good". В противном случае - слово "Bad".
{
int ar[6],s=0;
for(int i=0;i<6;i++)scanf("%d",&ar[i]);
for(i=0;i<5;i+=2)if(ar[i]==ar[i+1])s++;
if(s==3)printf("Good\n\n");
else printf("Bad\n\n");
return 0;
}
№2
Написать программу,которая использует массив данных и копирует во второй массив все числа из первого до первого числа двухзначного.
{
int box[6],box1[6],k=0;
for(int i=0;i<6;i++)scanf("%d",&box[i]);
for(i=0;i<6;i++)
{
if(box[i]<10||box[i]>99)
{
box1[k]=box[i];
printf("%d\n",box1[k]);
k++;
}
else break;
}
return 0;
}
№4
Написать прогу,которая вводит 15 однозначных чисел и выводит на экран по
каждому числу колво введённых чисел.
{
int arr[10]={0},s=0,a;
for(int i=0;i<15;i++)
{
scanf("%d",&a);
arr[a]++;
}
for(i=0;i<10;i++)printf("%d=%d\n",i,arr[i]);
return 0;
}
читать дальшеПеременная по типу сhar.
В переменную по типу char можно внести только одинарный символ.
Объявление переменной:
char ch;
Каждый символ имеет числовое значение.
Например:
'a'=97;
'b'=98;
''
''
'z'=122;
'A'=65;
'B'=66;
''
''
'Z'=90;
'0'=48;
'1'=49;
''
''
'9'=57;
№5
Написать программу, которая вводит символ с клавиатуры, распечатывает его на экране и даёт его числовое значение.
{
char s;
scanf("%c",&s);
printf("\n%c-%d\n",s,s);
return 0;
}
№6
Написать программу, которая вводит символ и проверяет: если это символ - 'a', выводит на экран слово "окау", если другой символ - слово "no".
{
char s;
scanf("%c",&s);
if(s=='a')printf("okay\n\n");
else printf("no\n\n");
return 0;
}
Д/з
Написать программу, которая вводит символ и два числа. Программа в соответствии с символом должна вывести на экран результат. Если этот символ не будет являться символом действия, выдать сообщение об ошибке.
{
char s;
int a,b;
scanf("%d%c%d",&a,&s,&b);
if(s=='+')printf("=%d\n\n",a+b);
else if(s=='-')printf("=%d\n\n",a-b);
else if(s=='*')printf("=%d\n\n",a*b);
else if(b!=0)printf("=%d\n\n",a/b);
else printf("Neverno vvedeny dannye\n\n");
return 0;
}
№7
Написать программу, которая вводит ряд символов. Признаком окончания ввода является восклицательный знак. Программа подсчитвыает сколько было введено символов.
{
char n,s=0;
scanf("%c",&n);
while(n!='!')
{
s++;
scanf("%c",&n);
}
printf("%d\n\n",s);
return 0;
}
№8
Написать программу, которая вводит ряд символов. Признаком окончания ввода является #. В программе необходимо опдсчитать сколько было больших букв, сколько - маленьких и сколько цифр.
{
char n,s=0,s1=0,s2=0;
scanf("%c",&n);
while(n!='#')
{
if(n>96&&n<123)s++;
else if(n>64&&n<91)s1++;
else if(n>47&&n<58)s2++;
scanf("%c",&n);
}
printf("%d\n%d\n%d\n\n",s,s1,s2);
return 0;
}
читать дальше
Массив символов
Символьный массив отличается от числового тем, что в каждой ячейке может нах-ся только 1 символ.
Признаком окончания массива является '\0'.
Пример:
'a' 'b' 'b' 'a' ' ' 'i' 'm' 'a' '\0'
№9
Написать программу, которая вводит в символьный массив по размеру не более 30 ячеек и распечатывает эти данные. Признаком окончания ввода является #.
{
char ar[30];
int i=0;
scanf("%c",&ar[i]);
while(ar[i]!='#')
{
i++;
scanf("%c",&ar[i]);
}
ar[i]='\0';
i=0;
while(ar[i]!='\0')
{
printf("%c",ar[i]);
i++;
}
printf("\n\n");
return 0;
}
Для ввода данных в символьный массив используется одна из двух команд:
1) scanf("%s",ar);
2)gets(ar);
При вводе данных с помощью этих команд при нажатии на клавишу Enter автоматически в массив вводится символ '\0'.
Для распечатки данных из массива (распечатки всего массива) испотзуется одна из двух команд:
1)printf("%s",ar);
2)puts(ar);
{
char ar[30];
gets(ar);
puts(ar);
return 0;
}
№10
Написать программу, которая вводит в массив символов предложение не более 40 символов, между словами существует 1 пробел. Программа подсчитывает количество слов в предложении.
{
char ar[40];
int i=0,s=1;
gets(ar);
while(ar[i]!='\0')
{
if(ar[i]==' ')s++;
i++;
}
printf("%d\n\n",s);
return 0;
}
№11
Написать программу, которая вводит предложение не более 40 символов в символьный массив и проверяет, что каждое слово в предложении начинается с большой буквы. Если да - выводит на экран слово "окау", в противном случае - "no".
{
char ar[40]; //char ar[]="mama myla Ramu";
int i=0,flag=1;
gets(ar);
while(ar[i]!='\0')
{
if(!(ar[i]>='A'&&ar[i]<='Z'))
{
flag=0;
break;
}
while(ar[i]!=' '&&ar[i]!='\0')i++;
if(ar[i]!='\0')i++;
}
if(flag==1)printf("okay\n\n");
else printf("No\n\n");
return 0;
}
№12
Написать программу, которая вводит в символьный массив слово и проверяет, если это слово симметричное.
{
char ar[20];
int i=0,s=0,flag=1;
gets(ar);
while(ar[i]!='\0')i++;
s=i-1;
for(i=0;i {
if(ar[i]!=ar[s])
{
flag=0;
break;
}
}
if(flag==1)printf("simmetri4no\n\n");
else printf("nesimmetri4no\n\n");
return 0;
}
№13
Написать программу, которая вводит в символьный массив пять слов. Массив не больше 60. Программа распечатывает третье слово. Между словами есть один пробел.
{
char ar[60];
int i=0,s=1;
gets(ar);
while(s!=3)
{
if(ar[i]==' ')s++;
i++;
}
while(ar[i]!=' ')
{
printf("%c",ar[i]);
i++;
}
printf("\n\n");
return 0;
}
Д/з
читать дальше№1
Написать программу, которая вводит в символьный массив предложение. Программа должна распечатать последнее слово. (60)
{
char ar[60];
int i=0;
gets(ar);
while(ar[i]!='\0')i++;
while(ar[i]!=' ')i--;
while(ar[i]!='\0'){
i++;
printf("%c",ar[i]);
}
printf("\n\n");
return 0;
}
№2
Написать программу, которая вводит предложение в символьный массив не больше 60 символов. Программа должна распечатать слова, состоящие из трёх символов.
{
char ar[60];
int i=0,s=0,j;
gets(ar);
while(ar[i]!='\0')
{
j=i;
while(ar[j]!=' '&& ar[j]!='\0')
{
s++;
j++;
}
if(s==3)
{
for(;i<j;i++)printf("%c",ar[i]);
printf("\n");
}
else i=j;
if(ar[i]!='\0')i++;
s=0;
}
return 0;
}
№14
Написать программу, которая вводит в символьный массив предложение, между словами существует один пробел. Программа должна вывести на экран слово с максимальным кол-вом букв.
{
char ar[60];
int i=0,s=0,s1=0,j=0,a;
gets(ar);
while(ar[i]!='\0')
{
j=i;
while(ar[i]!=' '&&ar[i]!='\0')
{
s++;
i++;
}
if(s>s1)
{
s1=s;
a=j;
}
if(ar[i]!='\0')i++;
s=0;
}
for(;ar[a]!=' '&&ar[a]!='\0';a++)printf("%c",ar[a]);
printf("\n\n");
return 0;
}
№15
Написать программу, которая вводит символы в символьный массив не более 20. Программа должна поменять каждую пару индексов и распечатать массив после изменения.
{
char ar[20],b;
int i=0;
gets(ar);
while(ar[i]!='\0'&&ar[i+1]!='\0')
{
b=ar[i];
ar[i]=ar[i+1];
ar[i+1]=b;
i+=2;
}
puts(ar);
printf("\n\n");
return 0;
}
№16
Написать программу, которая вводит символы в массив не более 30 и копирует во второй символьный массив из первого А и а. Программа должна распечатать второй массив.
{
char ar[30],arr[30];
int i=0,a=0;
gets(ar);
while(ar[i]!='\0')
{
if(ar[i]=='A'||ar[i]=='a')
{
arr[a]=ar[i];
a++;
}
i++;
}
arr[a]='\0';
puts(arr);
printf("\n\n");
return 0;
}
№17
Написать программу, которая вводитне более 30 символов в массив размером в 60.Кроме того, необходимо внести целое число в промежутке от 1 до 9. Программа сдвигает все символы, находящиеся в массиве на кол-во ячеек вправо, соответствующее введённому числу.
{
char ar[60],a;
int i=0,f;
gets(ar);
scanf("%d",&f);
while(ar[i]!='\0')i++;
while(i>=0)
{
ar[i+f]=ar[i];
i--;
}
a=f+'0';
for(i=0;i<f;i++)ar[i]=a;
puts(ar);
return 0;
}
№18
Написать программу, которая вводит два слова в символьный массив с размером до 30, между словами находится символ ",". Программа должна поменять эти два слова местами(количество букв в каждом слове одинаково).
{
char ar[30],p;
int i=0,a;
gets(ar);
while(ar[i]!=',')i++;
a=i+1;
i=0;
while(ar[a]!='\0')
{
p=ar[a];
ar[a]=ar[i];
ar[i]=p;
a++;
i++;
}
puts(ar);
return 0;
}
№19
Написать программу, которая вводит символы в массив не более 30. Программа должна скопировать из первого массива во второй все символы, находящиеся в первом массиве только один раз. Программа распечатывает второй массив.
{
char ar[30],arr[30];
int i=0,a=0,g=0,s=0;
gets(ar);
while(ar[i]!='\0')
{
while(ar[a]!='\0')
{
if(ar[i]==ar[a])s++;
a++;
}
if(s==1)
{
arr[g]=ar[i];
g++;
}
i++;
a=0;
s=0;
}
arr[g]='\0';
puts(arr);
return 0;
}
читать дальшеФункции
Шаги по использованию функций:
1) Объявление функции
как правило, это - место, находящееся после строки include и перед функцией main
2) Вызов функции
с любого места программы внутри функции main
3) Написание тела функции
место, как правило, находящееся после закрытия тела функции main.
№1
Написать программу, которая вводит два числа, эти два числа отправляет в функцию, функция должна вернуть сумму этих двух чисел и программа должна распечатать эту сумму на экране.
#include<stdio.h>
1)int func(int,int);
int main(void)
{
int a,b,sum;
scanf("%d%d",&a,&b);
2) sum=func(a,b);
printf("\nSum=%d",sum);
return 0;
}
3)int func(int a,int b)
{
return a+b;
}
1) Объявление функции
тип переменной, которую функция вызывает имя функции(список параметров, который функция должна получить
- если функция не возвращает результат, то тип переменной, которую функция возвращает будет void;
- если по месту "тип переменной, которую функция возвращает", ничего не написано, программа определяет тип переменной как integer. Функция может вернуть только одно значение. Невозможно, что функция один раз возвращает значение по типу integer, а другой раз - по типу float.
2) Вызов функции
имя функции(список параметров, которые передаём в функцию)
3) Написание тела функции
тип переменной, которую функция возвращает имя функции(тип имя переменной,тип имя апеременной)
количество и порядок в списке параметров при объявлении функции, при вызове функции и в написании тела функции обязан соответствовать.
Типы функций
1)Функция, которая ничего не возвращает и ничего не принимает.
Как правило, этиа функция что-то печатает
#include<stdio.h>
1) int f(int,int);
int main(void)
{
int a=3,b=5,sum;
2) sum=f(a,b);
printf("\nSum=%d",sum);
return 0;
}
3) int f(int a,int b)
{
return a+b;
}
1)Объявление функции
void имя функции(void);
2)Вызов функции
имя функции();
3)Написание тела функции
void имя функции(void)
{
}
№1
Написать рпограмму, которая выводит на экран предложение "Шалом, Екатерина". Вывод на экран необходимо сделать с помощью двух разных функций:
1) Выводит слово "Шалом";
2)Выводит имя.
void f1(void);
void f2(void);
void main(void)
{
f1();
f2();
}
void f1(void)
{
printf("Shalom,");
}
void f2(void)
{
printf("Ekaterina\n\n");
}
№2
Написать программу, использующую две функции:
1)печатает десять звёздочек;
2)печатает имя;
Программа должна вывести на экран 10 звёздочек, имя, 10 звёздочек
void f1(void);
void f2(void);
void main(void)
{
f1();
f2();
f1();
printf("\n");
}
void f1(void)
{
for(int i=0;i<10;i++)printf("*");
}
void f2(void)
{
printf("\nEkaterina\n");
}
2)Функция получает параметры, но ничего не возвращает
1. Объявление
void имя функции(int,int);
2. Вызов
имя функции(имя переменной, имя переменной);
3. Написание тела функции
void имя функции(int имя переменной, int имя переменной)
{
}
№3
Написать программу, которая вводит символ и выводит на экран этот символ пять раз.
void f(char);
void main(void)
{
char s;
scanf("%c",&s);
f(s);
printf("\n\n");
}
void f(char s)
{
for(int i=0;i<5;i++)printf("%c",s);
}
№4
Написать программу, которая принимает целое число от 1 до 9 и символ. Программа должна вывести количество символов, которе равно введённому числу.
void f(int,char);
void main(void)
{
int a;
char s;
scanf("%c%d",&s,&a);
f(a,s);
printf("\n\n");
}
void f(int a,char s)
{
for(;a>0;a--)printf("%c",s);
}
3) Функция принимает и возвращает. Функция может вернуть только один результат.
№5
Написать программу, которая вводит два числа и выводит на экран результат умножения одного на другое.
int f(int,int);
void main(void)
{
int a,b,sum;
scanf("%d%d",&a,&b);
sum=f(a,b);
printf("%d\n",sum);
}
int f(int a,int b)
{
return a*b;
}
№6
Написать программу, которая вводит 10 положительных чисел. Программа должна подсчитать сколько из 10 чисел было чётных и сколько - нечётных. Написать функцию, которая принимает число, проверяет его. Если оно чётное - возвращает 1, а если нечётное - возвращает 0.
int f(int);
void main(void)
{
int a,sc=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a);
sc+=f(a);
}
printf("ch=%d, nech=%d\n\n",sc,10-sc);
}
int f(int a)
{
if(a%2==0)return 1;
return 0;
}
#include<stdio.h>
int f1(int,int);
int f2(int);
void main(void)
{
int a=5,b=6,c;
c=f1(a,b+3);
b=f1(1,2);
a=f2(c);
printf("a=%d b=%d c=%d\n",a,b,c);
}
int f1(int x,int y)
{
return(x+y*2);
}
int f2(int x)
{
int z;
z=x+7;
return 2*z;
}
Вывод:
a=60 b=5 c=23
#include<stdio.h>
int f1(int x,int y)
{
return (x+y*2);
}
int f2(int x)
{
int z;
z=x+7;
return 2*z;
}
void main(void)
{
int a=5,b=6,c;
c=f1(a,b+3);
b=f1(1,2);
a=f2(c);
printf("a=%d b=%d c=%d\n",a,b,c);
}
№7
Написать программу, которая вводит два целых числа и выводит их на экран по возрастанию. Написать функцию по имени SORT, которая получает два параметра - числа, которые введены - и возвращает единицу, если первое число больше второго. В противном случае функция возвращает число нуль.
int sort(int a,int b)
{
if(a>b)return 1;
return 0;
}
void main(void)
{
int a,b;
scanf("%d%d",&a,&b);
if(sort(a,b))printf("%d %d\n\n",b,a);
else printf("%d %d\n\n",a,b);
}
читать дальше
Получение случайных чисел
№1
Написать программу, которая получает случайное число из промежутка от 0 до 15 включительно.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int num;
srand((unsigned)time(NULL));
num=rand()%16;
printf("%d\n",num);
}
unsigned - используется вместо integer(-32678 - +32677) для получения целых положительных чисел(0 - 65000)
№2
Написать программу, которая распечатывает на экране 10 чисел из промежутка от -25 до +25.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int num;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
num=rand()%51-25;
printf("%d\n",num);
}
}
через массив:
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
ar[i]=rand()%51-25;
printf("%3d",ar[i]);
}
printf("\n\n");
}
№3
Написать игру лото:
Написать программу, которая вводит в массив с размером в шесть случайные числа от 1 до 49(числа в массиве повторяться не могут). Программа распечатывает массив после его заполнения.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[6],i=0,f=0,a=0;
srand((unsigned)time(NULL));
while(i!=6)
{
ar[i]=rand()%50+1;
while(a!=i)
{
if(ar[i]==ar[a])
{
f=1;
break;
}
a++;
}
if(f==0)
{
printf("%d\n",ar[i]);
i++;
}
a=0;
}
}
Д/з:
К добавлению вышесказанного необходимо заполнить второй массив с клавиатуры и сравнить сколько было совпадений. Если было три совпадения - выигрыш составил 100 долларов, если четыре совпадения - 1000 долларов, если пять совпадений - 10000 долларов, если шесть совпадений - 1000000 долларов.
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[6],arr[6],f=0,s=0,g=0,a,i;
srand((unsigned)time(NULL));
for(i=0;i<6;i++)
{
printf("Vvedite 4islo %d: ",i+1);
scanf("%d",&arr[i]);
if(arr[i]>49||arr[i]<1)
{
printf("Vvodit ot 1 do 49\n");
i--;
continue;
}
for(a=0;a {
printf("Wo ze??\n");
i--;
break;
}
}
a=0;
printf("\n");
for(i=0;i<6;i++)
{
ar[i]=rand()%48+1;
for(a=0;a {
if(ar[i]==ar[a])
{
i--;
f=1;
break;
}
}
if(f==0)
{
while(g!=6)
{
if(ar[i]==arr[g])
{
s++;
break;
}
g++;
}
g=0;
}
f=0;
}
for(i=0;i<6;i++)printf("%3d",ar[i]);
printf("\n");
for(i=0;i<6;i++)printf("%3d",arr[i]);
printf("\n\n");
if(s==3)printf(" 100$\n\n");
else if(s==4)printf(" 1000$\n\n");
else if(s==5)printf(" 10000$\n\n");
else if(s==6)printf(" 1000000$\n\n");
}
№4
Написать функцию, которая принимает символьный массив и переменную по типу символ. Функция возвращает индекс из символьного массива, в котором появляется этот символ в первый раз.
№5
Написать функцию, которая принимает символьный массив и переменную по типу символ и возвращает индекс из символьного массива, где этот символ появляется в последний раз.
№6
Написать программу,которая вводит символьный массив не более 30 символов и вводит отдельный символ. Программа должна распечатать:
1. Все символы, находящиеся в символьном массиве до первого появления символа.
2. Распечатать все символы, находящиеся после последнего символа.
3. все симолы, находящиеся между первым и последним символами (обязательно при вводе ввести хотя бы дважды в символьный массив символ, который будет вводиться отдельно).
#include<stdio.h>
int f1(char a,char ar[30])
{
int i=0;
while(ar[i]!='\0')
{
if(a==ar[i])return i;
i++;
}
}
int f2(char a,char ar[30])
{
int j=0;
while(ar[j]!='\0')j++;
while(j!=0)
{
if(a==ar[j])return j;
j--;
}
}
void main(void)
{
char ar[30],a;
int i=0,j=30;
gets(ar);
scanf("%c",&a);
for(int s=0;s<f1(a,ar);s++)printf("%3c",ar[s]);
printf("\n");
for(s=f2(a,ar)+1;ar[s]!='\0';s++)printf("%3c",ar[s]);
printf("\n");
for(s=f1(a,ar)+1;s<f2(a,ar)-1;s++)printf("%3c",ar[s]);
читать дальше
Двухмерный массив
Объявление двухмерного массива:
int ar[3[5];
3 - количество строк;
5 - количество столбцов.
scanf("%d"&ar[2][1]);
Использование функций
двухмерный массив функции работает как одномерный, то есть все измерения, которые мы делаеи в функции с двухмерного массива - главная функция видит эти измерения.
Передача двухмерного массива в функцию
Обязаны объявить количество столбцов и не обязательно - количество строк.
1.void f(int ar[][5]);
2.void main(void)
{
int ar[3][5];
f(ar);
...
}
3.void f(int ar[][5])
{
...
}
№1
Написать порграмму, которая заполняет массив 4*4 целыми числами и строит одномерный массив с размером в четыре ячейки. Программа должна скопировать из каждой строки двухмерного массива максимальное число в одномерный массив.
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void Insert(int [][4]);
void Print(int [][4],int []);
void main(void)
{
int a[4][4],b[4];
Insert(a);
Print(a,b);
}
void Insert(int a[][4])
{
int i,j;
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=(rand()%201)-100;
}
void Print(int a[][4],int b[])
{
int i,j,max;
for(i=0;i<4;i++){
max=a[i][0];
for(j=0;j<4;j++){
printf("%8d",a[i][j]);
if(a[i][j]>max)
max=a[i][j];
}
b[i]=max;
printf("\n");
}
printf("\n\n\n\n");
for(i=0;i<4;i++)
printf("%8d",b[i]);
printf("\n\n\n\n");
}
Д/з:
Добавить третий массив одномерный на 4 ячейки, который выдаёт максимальное значение по столбцам.
В двухмерном квадратном массиве существуют объекты. Ячейки, находящиеся выше главной диагонали, составляют верхний треугольник. Ячейки, находящиеся ниже главной диагонали, составляют нижний треугольник.
Для заполнений двухмерного массива данных после объявления имени:
int box[][4]={{1,5,8,42},{-13,6,2,89},{34,67,2,8},{1,2,3,4}};
№2
Написать программу,которая использует массив данных с размером 4*4. Программма выводит на экран слово "yes", если сумма главной диагонали равна сумме верхнего треугольника и равна сумме нижнего треугольника. В противном случае "no".
Написать функцию, которая получает массив и возвращает единицу, если три суммы равны между собой и число 0, если нет.
int f1(int ar[4][4])
{
int a=0,b=0,c=0;
for(int i=0;i<4;i++)for(int j=0;j<4;j++)
{
if(j==i)a+=ar[i][j];
else if(j>i)b+=ar[i][j];
else c+=ar[i][j];
}
if(a==b&&a==c)return 1;
else return 0;
}
void main(void)
{
int ar[4][4]={{1,1,1,1},{1,2,1,1},{1,1,2,1},{1,1,1,1}};
if(f1(ar)==1)printf("yes\n\n");
else printf("no\n\n");
}
№3
Написать программу, которая вводит случайные числа от 0 до 9 включительно в двухмерный массив с размером 6*6. Программа должна подсчитать сколько в двухмерном массиве находится каждой цифры. Две функции:
1. Вводит случайные числа в двухмерный массив
2. Принимает двухмерный массив, распечатывает его и распечатывает сколько каждое число находится в массиве.
#include<stdlib.h>
#include<time.h>
void f1(int ar[6][6])
{
srand((unsigned)time(NULL));
for(int i=0;i<6;i++)for(int j=0;j<6;j++)ar[i][j]=rand()%10;
}
void f2(int ar[6][6])
{
int ar2[10]={0};
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
ar2[ar[i][j]]++;
printf("%3d",ar[i][j]);
}
printf("\n");
}
for(i=0;i<10;i++)printf("\n%d=%d\n",i,ar2[i]);
}
void main(void)
{
int ar[6][6];
f1(ar);
f2(ar);
printf("\n");
}
№4
Написать программу, которая вводит данные в двухмерный массив с размером 4*4 и выводит на экран слово "yes", если главная и второстепенная диагонали симметричны. В противном случае - слово "no".
Написать функцию, которая получает заполненный массив и вовзращает число 1, если главная и второстепенная диагонали симметричны, в противном случае - число 0.
int f1(int ar[4][4])
{
int s=0;
for(int i=0,f=3;i<f;i++,f--)if(ar[i][i]!=ar[f][f]||ar[i][f]!=ar[f][i])return 0;
return 1;
}
void main(void)
{
int ar[4][4]={{15,1,2,-2},{3,20,-8,5},{4,-8,20,6},{-2,8,7,15}};
if(f1(ar)==1)printf("yes\n\n");
else printf("no\n\n");
}
№5
Даны два одномерных массива с размером в десять ячеек каждый. Необходимо их заполнить рандомальными числами от 0 до 9. Необходимо распечатать эти два массива.
Создать одномреный массив в 20 ячеек, в который зайдут числа из первых двух массивов следующим образом: вначале - числа из первого до числа 0. 0 не вносить в третий массив. После этого вносятся числа из второго массива до числа 0. После этого возвращаемся на первый массив, продолжаем переносить числа в третий и т.д.
#include<stdlib.h>
#include<time.h>
void main(void)
{
int ar1[10],ar2[10],ar3[20],a=0,b=0;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
ar1[i]=rand()%10;
ar2[i]=rand()%10;
}
for(i=0;i<10;i++)printf("%3d",ar1[i]);
printf("\n\n");
for(i=0;i<10;i++)printf("%3d",ar2[i]);
printf("\n\n");
i=0;
while(i<10||b<10)
{
while(ar1[b]!=0&&b<10)
{
ar3[a]=ar1[b];
b++;
a++;
}
b++;
while(ar2[i]!=0&&i<10)
{
ar3[a]=ar2[i];
i++;
a++;
}
i++;
}
printf("\n\n");
for(i=0;iprintf("\n\n");
}
№6
Написать программу, которая заполняет символьный массив не более 100 символов. Символьный массив состоит из букв, цифр и символов. Программа заполняет массив чисел из символьного массива. Написать функцию, которая получает заполненный символьный массив и пустой числовой, заполняет числовой массив числами, находящимися в символьном массиве.
Шаги выполнения программы:
1. Продвигаем индекс в симвльном массиве до появления цифры в нём;
2. Преображаем цифру символьную в число с помощью вычетания символа "0";
3. Если следующий символ тоже цифра, умножаем предыдущее число на 10 и добавляем новую цифру-число.
void f1(char ar1[],int ar2[])
{
int i=1,a=0;
while(ar1[i]!='\0')
{
while(ar1[i]>='0'&&ar1[i]<='9')
{
if(ar1[i-1]>='0'&&ar1[i-1]<='9')
{
a--;
ar2[a]=(ar2[a]*10)+(ar1[i]-'0');
}
else ar2[a]=ar1[i]-'0';
i++;
a++;
}
i++;
}
for(i=0;i printf("\n\n");
}
void main(void)
{
char ar1[100];
int ar2[100];
gets(ar1);
f1(ar1,ar2);
}
№7
Написать программу, которая заполняет двухмерный массив целыми положительными числами (размер массива - 5*5) и меняет давнные в ячейках в соответствии с суммой цифр в каждой из них.
#include<stdlib.h>
#include<time.h>
void main(void)
{
int ar[5][5],s=0,j=0;
srand((unsigned)time(NULL));
for(int i=0;i<5;i++)for(j=0;j<5;j++)ar[i][j]=rand()%100;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
for(i=0;i<5;i++)for(j=0;j<5;j++)
{
while(ar[i][j]>0)
{
s+=ar[i][j]%10;
ar[i][j]/=10;
}
ar[i][j]=s;
s=0;
}
printf("\n\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
}
№8
Написать программу, которая вводит в символьный массив предложение, состоящее из семи слов(размер массива - не более 80 символов). Написать функцию, которая принимает символьный массив и пчечатает два самых длинных слова в предложении. Между словами есть один пробел.
void f(char ar[])
{
int i=0,s=0,a=0,j=0,d=0,b=0,g=0;
while(b!=7)
{
while(ar[i]!=' '&&ar[i]!='\0')
{
s++;
i++;
}
if(s>a)
{
j=a;
g=d;
a=s;
d=i-1;
}
else if(s>j)
{
j=s;
g=i-1;
}
b++;
s=0;
i++;
}
while(ar[d]!=' ')d--;
while(ar[g]!=' ')g--;
d++;
g++;
for(;ar[d]!=' ';d++)printf("%c",ar[d]);
printf("\t");
for(;ar[g]!=' ';g++)printf("%c",ar[g]);
printf("\n\n");
}
void main(void)
{
char ar[80];
gets(ar);
f(ar);
}
№9
Написать программу, которая вводит в двухмерный массив случайные числа от -20 до 20 размером 4*4 и строит 2 одномерных массива. Необходимо написать функцию, которая принимает эти три массива - двухмерный массив с числами и два пучтых одномерных - и заполняет первый одномерный массив отрицательными числами из двухмерного и второй одномерный массив - положительными.
Написать вторую функцию, которая принимает три массива и красиво их распечатывает.
#include<stdlib.h>
#include<time.h>
void f1(int ar[4][4],int o[16],int p[16])
{
int a=0,b=0;
for(int i=0;i<4;i++)for(int j=0;j<4;j++)
{
if(ar[i][j]<0)
{
o[a]=ar[i][j];
a++;
}
else
{
p[b]=ar[i][j];
b++;
}
}
for(i=0;i printf("\n");
for(i=0;i printf("\n");
}
void f2(int ar[4][4],int o[16],int p[16])
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
}
void main(void)
{
int ar[4][4],o[16],p[16];
srand((unsigned)time(NULL));
for(int i=0;i<4;i++)for(int j=0;j<4;j++)ar[i][j]=rand()%41-20;
f1(ar,o,p);
f2(ar,o,p);
}
№10
2 массива 5*5. Заполняем 4*4.
void main(void)
{
int ar1[5][5],ar2[5][5],s1=0,s2=0,j=0;
srand((unsigned)time(NULL));
for(int i=0;i<4;i++)for(j=0;j<4;j++)
{
ar1[i][j]=rand()%20-10;
ar2[i][j]=rand()%20-10;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)printf("%d\t",ar1[i][j]);
printf("\n");
}
printf("\n\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(ar1[i][j]>=0)s1++;
else s2++;
}
ar1[i][4]=s1;
ar1[4][i]=s2;
s1=0;
s2=0;
}
for(j=0;j<4;j++)
{
for(i=0;i<4;i++)
{
if(ar2[j][i]>=0)s1++;
else s2++;
}
ar2[j][4]=s1;
ar2[4][j]=s2;
s1=0;
s2=0;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==4&&j==4)break;
else printf("%d\t",ar1[i][j]);
}
printf("\n");
}
printf("\n\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==4&&j==4)break;
else printf("%d\t",ar2[i][j]);
}
printf("\n");
}
printf("\n\n");
}

int main(void)
/*{
int a;
printf("Vvedite 4islo:");
scanf("%d",&a);
if(a>=28&&a<=31)printf("OK\n\n");
else printf("No\n\n");
return 0;
}*/
/*
{
int a,b;
printf("Vvedite 2 dvuzna4nyh 4isla\n");
scanf("%d%d",&a,&b);
if(a>9&&a<100&&b>9&&b<100)
{
if(a/10+a%10>b/10+b%10)printf("%d\t%d\n\n",a,a/10);
else if(a/10+a%10 else printf("No\n\n");
}
else printf("Error\n\n");
return 0;
}*//*
{
int a,b,c;
printf("Vvedite kol-vo vzroslyh,detey i no4ey\n");
scanf("%d%d%d",&a,&b,&c);
if(a+b<6)
{
if(a!=0&&b!=0)printf("%d\n\n",(a*300-100+b*100-100)*c);
else if(a!=0)printf("%d\n\n",(a*300-100)*c);
else printf("Net vzroslyh\n\n");
}
else printf("Mnogo narodu\n\n");
return 0;
}*//*
{
int a,b,c;
printf("Vvedite 3 4isla:\n");
scanf("%d%d%d",&a,&b,&c);
if(a {
if(b<c)printf("%d %d %d\n\n",a,b,c);
else printf("%d %d %d\n\n",a,c,b);
}
else if(b {
if(a<c)printf("%d %d %d\n\n",b,a,c);
else printf("%d %d %d\n\n",b,c,a);
}
else if(c {
if(b else printf("%d %d %d\n\n",c,a,b);
}
return 0;
}*/
/*
{
int a,b,c,d;
printf("Vvedite 4isla\n");
scanf("%d%d%d",&a,&b,&c);
if(b {
d=a;
a=b;
if(d<c) b=d;
else
{
b=c;
c=d;
}
}
else if(c {
d=a;
a=c;
if(d>b) c=d;
else
{
c=b;
b=d;
}
}
else if(b>c)
{
d=b;
b=c;
c=d;
}
printf("\n%d\t%d\t%d\n",a,b,c);
return 0;
}*/
/*
{
int i;
for(i=1;i<=15;i++)printf("Sliha\n");
return 0;
}*/
/*
{
int a,b,c,d;
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
d=a;
a=b;
b=d;
}
if(b>c)
{
d=b;
b=c;
c=d;
}
if(a>b)
{
d=a;
a=b;
b=d;
}
printf("%d %d %d\n",a,b,c);
return 0;
}
*//*
{
int i,a;
scanf("%d",&a);
for(i=1;i<=a;i++)printf("%d\n",i);
return 0;
}*//*
{
for(int i=0;i<=20;i=i+2)printf("%d\n",i);
return 0;
}*//*
{
int a1,a2,a3,a4,a5,a6,a7,a8,sum;
scanf("%d%d%d%d%d%d%d%d",&a1,&a2,&a3,&a4,&a5,&a6,&a7,&a8);
sum=a1+(a2*2)/10+(a2*2)%10+a3+(a4*2)/10+(a4*2)%10+a5+(a6*2)/10+(a6*2)%10+a7+(a8*2)/10+(a8*2)%10;
if(sum%10==0)printf("0\n\n");
else if(sum>0&&sum<10)printf("%d\n\n",10-sum);
else if(sum>10&&sum<20)printf("%d\n\n",20-sum);
else if(sum>20&&sum<30)printf("%d\n\n",30-sum);
else if(sum>30&&sum<40)printf("%d\n\n",40-sum);
else if(sum>40&&sum<50)printf("%d\n\n",50-sum);
else if(sum>50&&sum<60)printf("%d\n\n",60-sum);
else if(sum>60&&sum<70)printf("%d\n\n",70-sum);
else if(sum>70&&sum<80)printf("%d\n\n",80-sum);
return 0;
}*//*
{
int b=1,a(b),sum,;
for(;b<9;b++)
{
scanf("%d",&a(b));
if(a(b)%2==0)a(b)*=2;
a(b)+=sum;
}
if(sum%10==0)printf("0\n\n");
else printf("%d\n\n",(sum-sum%10+10)-sum);
return 0;
}*//*
{
int b,ab,sum=0,i;
for(b=1;b<=8;b++)
{
scanf("%d",&ab);
if(b%2==0)
{
ab*=2;
if(ab>9)ab=ab/10+ab%10;
}
sum+=ab;
}
if(sum%10==0)printf("0\n\n");
else for(i=10;i<=80;i+=10)if(i>sum)
{
printf("%d\n\n",i-sum);
break;
}
return 0;
}*//*
{
int b,ab;
for(b=1;b<=6;b++)
{
scanf("%d",&ab);
if(ab/1000==ab%10&&ab/100%10==ab/10%10)printf("Yes\n\n");
else printf("No\n\n");
}
return 0;
}*//*
{
int b,ab,cb;
for(b=1;b<=6;b++)
{
scanf("%d%d",&ab,&cb);
if(ab/10+ab%10==cb/10+cb%10)printf("\n%d\n\n",ab/10+ab%10);
}
return 0;
}
*/
/*
{
int b,ab,cb;
for(b=1;b<=6;b++)
{
scanf("%d%d",&ab,&cb);
if(ab-cb>-10&&ab-cb<10)printf("\n%d %d\n",ab,cb);
}
return 0;
}*//*
{
float i,sum=0;
for(i=2;i<6;i++)sum+=i/(i+1);
printf("%.2f\n\n",sum);
return 0;
}*//*
{
float i,a=0,b=1;
for(i=1;i<=5;i++)
{
a+=i;
b*=i;
}
printf("%f\n\n",a/b);
return 0;
}*//*
{
int i;
float sum=0;
for(i=3;i<=11;i+=2)sum+=1/(float)i;
printf("%f\n\n",sum);
return 0;
}*//*
{
int a,sum=0,z=1;
for(a=1;a<=8;a++)
{
sum+=a*z;
z*=-1;
}
printf("%d\n\n",sum);
return 0;
}*//*
{
int i,a,b;
float sum=8;
for(a=1,b=3,i=1;b<=11;a++,b+=2,i++)
{
if(i%2==0)sum+=(float)(0-a)/b;
else sum+=(float)a/b;
}
printf("%f\n\n",sum);
return 0;
}*//*
{
int a,b,z=1;
float sum=8;
for(a=1,b=3;b<=11;a++,b+=2)
{
sum+=(float)a*z/b;
z*=-1;
}
printf("%f\n\n",sum);
return 0;
}
*//*
{
int i;
for(i=1;i<11;i++)
{
if(i==3||i==7)continue;
printf("%d\n",i);
}
return 0;
}*//*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<5;i++)
{
scanf("%d\n",&n);
if(n>o)s++;
o=n;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*//*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<6;i++)
{
scanf("%d\n",&n);
if(n<o)break;
n=o
s++;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*/
/*
{
int i,o,n,s=1;
scanf("%d\n",&o);
for(i=1;i<5;i++)
{
scanf("%d\n",&n);
if(n-o!=1)break;
s++;
o=n;
}
if(s==6)printf("okay\n\n");
else printf("no\n\n");
return 0;
}*//*
{
int i,sum;
scanf("%d",&sum)
while(sum<100)
{
scanf("%d",&i);
sum+=i;
}
printf("%d\n",sum);
return 0;
}*//*
{
int s=0,a;
scanf("%d",&a);
while(a>0)
{
s++;
a/=10;
}
printf("%d\n",s);
return 0;
}*//*
{
int a,b,sum=0;
scanf("%d",&a);
b=a;
while(a>0)
{
sum+=a%10;
a/=10;
}
printf("%d\n%d\n",sum,b);
return 0;
}*/
/*
{
int a,b;
scanf("%d",&b);
if(b!=-1)
{
while(a!=-1)
{
scanf("%d",&a);
if(a>b&&a!=-1)b=a;
}
}
printf("%d\n",b);
return 0;
}
*//*
{
int a,b;
scanf("%d",&a);
b=a%10;
while(a>0)
{
a/=10;
if(a%10>b)b=a%10;
}
printf("%d\n",b);
return 0;
}
*//*
#include<iostream.h>
void(main)*//*
{
int a,sum=0,x=0;
scanf("%d",&a);
while(a!=0)
{
for(int i=a-1;i>1;i--)
{
if(a%i==0)
{
sum+=a;
continue;
}
else
{
x+=a;
break;
}
}
printf("%d\n",x);
scanf("%d",&a);
}
printf("%d\n",sum);
return 0;
}*//*
{
int a,s1=0,s2=0,sum=0;
scanf("%d",&a);
while(a!=0)
{
for(int i=a-1;i>1;i--)
{
if(a%i==0)s1++;
if(a%i!=0||a==2||a==1)s2++;
}
if(s1>0)sum+=a;
if(s2==a-2)printf("%d\n",a);
scanf("%d",&a);
s1=s2=0;
}
printf("%d\n",sum);
return 0;
}
*//*
{
int a,i,sum=0;
for(i=1;i<=10;i++)
{
scanf("%d",&a);
sum+=a;
}
if(sum%2==0)printf("Yes\n");
else printf("No\n");
return 0;
}*//*
{
int a,b;
scanf("%d%d",&a,&b);
printf("%d\n",a/1000+a/100%10+b%10+b/10%10);
return 0;
}*/
/*
{
int a,sch=0;
scanf("%d",&a);
while(a!=0)
{
a/=10;
sch++;
}
printf("%d\n\n",sch);
return 0;
}
*//*
{
int ar[10];
for(int i=0;i<10;i++)
{
ar[i]=i;
printf ("%d\n",ar[i]);
}
return 0;
}*/
/*
{
int ar[6],sum=0;
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
sum+=ar[i];
}
printf("%f\n",sum/(i*1.0));
return 0;
}
*//*
{
int ar[6],arr[6];
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
arr[i]=10-ar[i];
}
for(i=0;i<6;i++)printf("%d\n",arr[i]);
return 0;
}*/
/*
{
int ar[8],arr[8],arrr[8];
int a=0,b=0;
for(int i=0;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]>=0)
{
arr[a]=ar[i];
a++;
}
else
{
arrr[b]=ar[i];
b++;
}
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
for(i=0;i return 0;
}
*//*
{
int ar[8],arr[8],b=0;
for(int i=0;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]%2==0)
{
arr[b]=ar[i];
b++;
}
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
return 0;
}*/
/*
{
int ar[8], arr[14],b=0,s;
scanf("%d",&ar[0]);
s=ar[0];
for(int i=1;i<8;i++)
{
scanf("%d",&ar[i]);
if(ar[i]==s)
{
arr[b]=ar[i];
arr[b+1]=s;
b+=2;
}
s=ar[i];
}
printf("\n\n\n");
for(i=0;i<8;i++)printf("%d\n",ar[i]);
printf("\n\n\n");
for(i=0;i printf("\n\n\n");
return 0;
}
*//*
{
int ar[6],s=0;
for(int i=0;i<6;i++)scanf("%d",&ar[i]);
for(i=0;i<5;i+=2)if(ar[i]==ar[i+1])s++;
if(s==3)printf("Good\n\n");
else printf("Bad\n\n");
return 0;
}
*/
/*
1 0 0==1
1 1 1==0
2 2 2==3
2 3 3==2
3 4 4==5
3 5 5==4
*/
{
int ar[6],arr[6],b=0;
for(int i=0;i<6;i++)
{
scanf("%d",&ar[i]);
if(ar[i]>9&&ar[i]<100)b++;
}
for(i=0;i for(i=0;i return 0;
}
Д/З
читать дальше
№1
Написать программу, которая вводит шесть чисел в массив с размером в шесть.Программа проверяет, если все соседние ячейки одинаковые, и выводит на экран слово "Good". В противном случае - слово "Bad".
{
int ar[6],s=0;
for(int i=0;i<6;i++)scanf("%d",&ar[i]);
for(i=0;i<5;i+=2)if(ar[i]==ar[i+1])s++;
if(s==3)printf("Good\n\n");
else printf("Bad\n\n");
return 0;
}
№2
Написать программу,которая использует массив данных и копирует во второй массив все числа из первого до первого числа двухзначного.
{
int box[6],box1[6],k=0;
for(int i=0;i<6;i++)scanf("%d",&box[i]);
for(i=0;i<6;i++)
{
if(box[i]<10||box[i]>99)
{
box1[k]=box[i];
printf("%d\n",box1[k]);
k++;
}
else break;
}
return 0;
}
№4
Написать прогу,которая вводит 15 однозначных чисел и выводит на экран по
каждому числу колво введённых чисел.
{
int arr[10]={0},s=0,a;
for(int i=0;i<15;i++)
{
scanf("%d",&a);
arr[a]++;
}
for(i=0;i<10;i++)printf("%d=%d\n",i,arr[i]);
return 0;
}
читать дальшеПеременная по типу сhar.
В переменную по типу char можно внести только одинарный символ.
Объявление переменной:
char ch;
Каждый символ имеет числовое значение.
Например:
'a'=97;
'b'=98;
''
''
'z'=122;
'A'=65;
'B'=66;
''
''
'Z'=90;
'0'=48;
'1'=49;
''
''
'9'=57;
№5
Написать программу, которая вводит символ с клавиатуры, распечатывает его на экране и даёт его числовое значение.
{
char s;
scanf("%c",&s);
printf("\n%c-%d\n",s,s);
return 0;
}
№6
Написать программу, которая вводит символ и проверяет: если это символ - 'a', выводит на экран слово "окау", если другой символ - слово "no".
{
char s;
scanf("%c",&s);
if(s=='a')printf("okay\n\n");
else printf("no\n\n");
return 0;
}
Д/з
Написать программу, которая вводит символ и два числа. Программа в соответствии с символом должна вывести на экран результат. Если этот символ не будет являться символом действия, выдать сообщение об ошибке.
{
char s;
int a,b;
scanf("%d%c%d",&a,&s,&b);
if(s=='+')printf("=%d\n\n",a+b);
else if(s=='-')printf("=%d\n\n",a-b);
else if(s=='*')printf("=%d\n\n",a*b);
else if(b!=0)printf("=%d\n\n",a/b);
else printf("Neverno vvedeny dannye\n\n");
return 0;
}
№7
Написать программу, которая вводит ряд символов. Признаком окончания ввода является восклицательный знак. Программа подсчитвыает сколько было введено символов.
{
char n,s=0;
scanf("%c",&n);
while(n!='!')
{
s++;
scanf("%c",&n);
}
printf("%d\n\n",s);
return 0;
}
№8
Написать программу, которая вводит ряд символов. Признаком окончания ввода является #. В программе необходимо опдсчитать сколько было больших букв, сколько - маленьких и сколько цифр.
{
char n,s=0,s1=0,s2=0;
scanf("%c",&n);
while(n!='#')
{
if(n>96&&n<123)s++;
else if(n>64&&n<91)s1++;
else if(n>47&&n<58)s2++;
scanf("%c",&n);
}
printf("%d\n%d\n%d\n\n",s,s1,s2);
return 0;
}
читать дальше
Массив символов
Символьный массив отличается от числового тем, что в каждой ячейке может нах-ся только 1 символ.
Признаком окончания массива является '\0'.
Пример:
'a' 'b' 'b' 'a' ' ' 'i' 'm' 'a' '\0'
№9
Написать программу, которая вводит в символьный массив по размеру не более 30 ячеек и распечатывает эти данные. Признаком окончания ввода является #.
{
char ar[30];
int i=0;
scanf("%c",&ar[i]);
while(ar[i]!='#')
{
i++;
scanf("%c",&ar[i]);
}
ar[i]='\0';
i=0;
while(ar[i]!='\0')
{
printf("%c",ar[i]);
i++;
}
printf("\n\n");
return 0;
}
Для ввода данных в символьный массив используется одна из двух команд:
1) scanf("%s",ar);
2)gets(ar);
При вводе данных с помощью этих команд при нажатии на клавишу Enter автоматически в массив вводится символ '\0'.
Для распечатки данных из массива (распечатки всего массива) испотзуется одна из двух команд:
1)printf("%s",ar);
2)puts(ar);
{
char ar[30];
gets(ar);
puts(ar);
return 0;
}
№10
Написать программу, которая вводит в массив символов предложение не более 40 символов, между словами существует 1 пробел. Программа подсчитывает количество слов в предложении.
{
char ar[40];
int i=0,s=1;
gets(ar);
while(ar[i]!='\0')
{
if(ar[i]==' ')s++;
i++;
}
printf("%d\n\n",s);
return 0;
}
№11
Написать программу, которая вводит предложение не более 40 символов в символьный массив и проверяет, что каждое слово в предложении начинается с большой буквы. Если да - выводит на экран слово "окау", в противном случае - "no".
{
char ar[40]; //char ar[]="mama myla Ramu";
int i=0,flag=1;
gets(ar);
while(ar[i]!='\0')
{
if(!(ar[i]>='A'&&ar[i]<='Z'))
{
flag=0;
break;
}
while(ar[i]!=' '&&ar[i]!='\0')i++;
if(ar[i]!='\0')i++;
}
if(flag==1)printf("okay\n\n");
else printf("No\n\n");
return 0;
}
№12
Написать программу, которая вводит в символьный массив слово и проверяет, если это слово симметричное.
{
char ar[20];
int i=0,s=0,flag=1;
gets(ar);
while(ar[i]!='\0')i++;
s=i-1;
for(i=0;i
if(ar[i]!=ar[s])
{
flag=0;
break;
}
}
if(flag==1)printf("simmetri4no\n\n");
else printf("nesimmetri4no\n\n");
return 0;
}
№13
Написать программу, которая вводит в символьный массив пять слов. Массив не больше 60. Программа распечатывает третье слово. Между словами есть один пробел.
{
char ar[60];
int i=0,s=1;
gets(ar);
while(s!=3)
{
if(ar[i]==' ')s++;
i++;
}
while(ar[i]!=' ')
{
printf("%c",ar[i]);
i++;
}
printf("\n\n");
return 0;
}
Д/з
читать дальше№1
Написать программу, которая вводит в символьный массив предложение. Программа должна распечатать последнее слово. (60)
{
char ar[60];
int i=0;
gets(ar);
while(ar[i]!='\0')i++;
while(ar[i]!=' ')i--;
while(ar[i]!='\0'){
i++;
printf("%c",ar[i]);
}
printf("\n\n");
return 0;
}
№2
Написать программу, которая вводит предложение в символьный массив не больше 60 символов. Программа должна распечатать слова, состоящие из трёх символов.
{
char ar[60];
int i=0,s=0,j;
gets(ar);
while(ar[i]!='\0')
{
j=i;
while(ar[j]!=' '&& ar[j]!='\0')
{
s++;
j++;
}
if(s==3)
{
for(;i<j;i++)printf("%c",ar[i]);
printf("\n");
}
else i=j;
if(ar[i]!='\0')i++;
s=0;
}
return 0;
}
№14
Написать программу, которая вводит в символьный массив предложение, между словами существует один пробел. Программа должна вывести на экран слово с максимальным кол-вом букв.
{
char ar[60];
int i=0,s=0,s1=0,j=0,a;
gets(ar);
while(ar[i]!='\0')
{
j=i;
while(ar[i]!=' '&&ar[i]!='\0')
{
s++;
i++;
}
if(s>s1)
{
s1=s;
a=j;
}
if(ar[i]!='\0')i++;
s=0;
}
for(;ar[a]!=' '&&ar[a]!='\0';a++)printf("%c",ar[a]);
printf("\n\n");
return 0;
}
№15
Написать программу, которая вводит символы в символьный массив не более 20. Программа должна поменять каждую пару индексов и распечатать массив после изменения.
{
char ar[20],b;
int i=0;
gets(ar);
while(ar[i]!='\0'&&ar[i+1]!='\0')
{
b=ar[i];
ar[i]=ar[i+1];
ar[i+1]=b;
i+=2;
}
puts(ar);
printf("\n\n");
return 0;
}
№16
Написать программу, которая вводит символы в массив не более 30 и копирует во второй символьный массив из первого А и а. Программа должна распечатать второй массив.
{
char ar[30],arr[30];
int i=0,a=0;
gets(ar);
while(ar[i]!='\0')
{
if(ar[i]=='A'||ar[i]=='a')
{
arr[a]=ar[i];
a++;
}
i++;
}
arr[a]='\0';
puts(arr);
printf("\n\n");
return 0;
}
№17
Написать программу, которая вводитне более 30 символов в массив размером в 60.Кроме того, необходимо внести целое число в промежутке от 1 до 9. Программа сдвигает все символы, находящиеся в массиве на кол-во ячеек вправо, соответствующее введённому числу.
{
char ar[60],a;
int i=0,f;
gets(ar);
scanf("%d",&f);
while(ar[i]!='\0')i++;
while(i>=0)
{
ar[i+f]=ar[i];
i--;
}
a=f+'0';
for(i=0;i<f;i++)ar[i]=a;
puts(ar);
return 0;
}
№18
Написать программу, которая вводит два слова в символьный массив с размером до 30, между словами находится символ ",". Программа должна поменять эти два слова местами(количество букв в каждом слове одинаково).
{
char ar[30],p;
int i=0,a;
gets(ar);
while(ar[i]!=',')i++;
a=i+1;
i=0;
while(ar[a]!='\0')
{
p=ar[a];
ar[a]=ar[i];
ar[i]=p;
a++;
i++;
}
puts(ar);
return 0;
}
№19
Написать программу, которая вводит символы в массив не более 30. Программа должна скопировать из первого массива во второй все символы, находящиеся в первом массиве только один раз. Программа распечатывает второй массив.
{
char ar[30],arr[30];
int i=0,a=0,g=0,s=0;
gets(ar);
while(ar[i]!='\0')
{
while(ar[a]!='\0')
{
if(ar[i]==ar[a])s++;
a++;
}
if(s==1)
{
arr[g]=ar[i];
g++;
}
i++;
a=0;
s=0;
}
arr[g]='\0';
puts(arr);
return 0;
}
читать дальшеФункции
Шаги по использованию функций:
1) Объявление функции
как правило, это - место, находящееся после строки include и перед функцией main
2) Вызов функции
с любого места программы внутри функции main
3) Написание тела функции
место, как правило, находящееся после закрытия тела функции main.
№1
Написать программу, которая вводит два числа, эти два числа отправляет в функцию, функция должна вернуть сумму этих двух чисел и программа должна распечатать эту сумму на экране.
#include<stdio.h>
1)int func(int,int);
int main(void)
{
int a,b,sum;
scanf("%d%d",&a,&b);
2) sum=func(a,b);
printf("\nSum=%d",sum);
return 0;
}
3)int func(int a,int b)
{
return a+b;
}
1) Объявление функции
тип переменной, которую функция вызывает имя функции(список параметров, который функция должна получить
- если функция не возвращает результат, то тип переменной, которую функция возвращает будет void;
- если по месту "тип переменной, которую функция возвращает", ничего не написано, программа определяет тип переменной как integer. Функция может вернуть только одно значение. Невозможно, что функция один раз возвращает значение по типу integer, а другой раз - по типу float.
2) Вызов функции
имя функции(список параметров, которые передаём в функцию)
3) Написание тела функции
тип переменной, которую функция возвращает имя функции(тип имя переменной,тип имя апеременной)
количество и порядок в списке параметров при объявлении функции, при вызове функции и в написании тела функции обязан соответствовать.
Типы функций
1)Функция, которая ничего не возвращает и ничего не принимает.
Как правило, этиа функция что-то печатает
#include<stdio.h>
1) int f(int,int);
int main(void)
{
int a=3,b=5,sum;
2) sum=f(a,b);
printf("\nSum=%d",sum);
return 0;
}
3) int f(int a,int b)
{
return a+b;
}
1)Объявление функции
void имя функции(void);
2)Вызов функции
имя функции();
3)Написание тела функции
void имя функции(void)
{
}
№1
Написать рпограмму, которая выводит на экран предложение "Шалом, Екатерина". Вывод на экран необходимо сделать с помощью двух разных функций:
1) Выводит слово "Шалом";
2)Выводит имя.
void f1(void);
void f2(void);
void main(void)
{
f1();
f2();
}
void f1(void)
{
printf("Shalom,");
}
void f2(void)
{
printf("Ekaterina\n\n");
}
№2
Написать программу, использующую две функции:
1)печатает десять звёздочек;
2)печатает имя;
Программа должна вывести на экран 10 звёздочек, имя, 10 звёздочек
void f1(void);
void f2(void);
void main(void)
{
f1();
f2();
f1();
printf("\n");
}
void f1(void)
{
for(int i=0;i<10;i++)printf("*");
}
void f2(void)
{
printf("\nEkaterina\n");
}
2)Функция получает параметры, но ничего не возвращает
1. Объявление
void имя функции(int,int);
2. Вызов
имя функции(имя переменной, имя переменной);
3. Написание тела функции
void имя функции(int имя переменной, int имя переменной)
{
}
№3
Написать программу, которая вводит символ и выводит на экран этот символ пять раз.
void f(char);
void main(void)
{
char s;
scanf("%c",&s);
f(s);
printf("\n\n");
}
void f(char s)
{
for(int i=0;i<5;i++)printf("%c",s);
}
№4
Написать программу, которая принимает целое число от 1 до 9 и символ. Программа должна вывести количество символов, которе равно введённому числу.
void f(int,char);
void main(void)
{
int a;
char s;
scanf("%c%d",&s,&a);
f(a,s);
printf("\n\n");
}
void f(int a,char s)
{
for(;a>0;a--)printf("%c",s);
}
3) Функция принимает и возвращает. Функция может вернуть только один результат.
№5
Написать программу, которая вводит два числа и выводит на экран результат умножения одного на другое.
int f(int,int);
void main(void)
{
int a,b,sum;
scanf("%d%d",&a,&b);
sum=f(a,b);
printf("%d\n",sum);
}
int f(int a,int b)
{
return a*b;
}
№6
Написать программу, которая вводит 10 положительных чисел. Программа должна подсчитать сколько из 10 чисел было чётных и сколько - нечётных. Написать функцию, которая принимает число, проверяет его. Если оно чётное - возвращает 1, а если нечётное - возвращает 0.
int f(int);
void main(void)
{
int a,sc=0;
for(int i=0;i<10;i++)
{
scanf("%d",&a);
sc+=f(a);
}
printf("ch=%d, nech=%d\n\n",sc,10-sc);
}
int f(int a)
{
if(a%2==0)return 1;
return 0;
}
#include<stdio.h>
int f1(int,int);
int f2(int);
void main(void)
{
int a=5,b=6,c;
c=f1(a,b+3);
b=f1(1,2);
a=f2(c);
printf("a=%d b=%d c=%d\n",a,b,c);
}
int f1(int x,int y)
{
return(x+y*2);
}
int f2(int x)
{
int z;
z=x+7;
return 2*z;
}
Вывод:
a=60 b=5 c=23
#include<stdio.h>
int f1(int x,int y)
{
return (x+y*2);
}
int f2(int x)
{
int z;
z=x+7;
return 2*z;
}
void main(void)
{
int a=5,b=6,c;
c=f1(a,b+3);
b=f1(1,2);
a=f2(c);
printf("a=%d b=%d c=%d\n",a,b,c);
}
№7
Написать программу, которая вводит два целых числа и выводит их на экран по возрастанию. Написать функцию по имени SORT, которая получает два параметра - числа, которые введены - и возвращает единицу, если первое число больше второго. В противном случае функция возвращает число нуль.
int sort(int a,int b)
{
if(a>b)return 1;
return 0;
}
void main(void)
{
int a,b;
scanf("%d%d",&a,&b);
if(sort(a,b))printf("%d %d\n\n",b,a);
else printf("%d %d\n\n",a,b);
}
читать дальше
Получение случайных чисел
№1
Написать программу, которая получает случайное число из промежутка от 0 до 15 включительно.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int num;
srand((unsigned)time(NULL));
num=rand()%16;
printf("%d\n",num);
}
unsigned - используется вместо integer(-32678 - +32677) для получения целых положительных чисел(0 - 65000)
№2
Написать программу, которая распечатывает на экране 10 чисел из промежутка от -25 до +25.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int num;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
num=rand()%51-25;
printf("%d\n",num);
}
}
через массив:
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[10];
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
ar[i]=rand()%51-25;
printf("%3d",ar[i]);
}
printf("\n\n");
}
№3
Написать игру лото:
Написать программу, которая вводит в массив с размером в шесть случайные числа от 1 до 49(числа в массиве повторяться не могут). Программа распечатывает массив после его заполнения.
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[6],i=0,f=0,a=0;
srand((unsigned)time(NULL));
while(i!=6)
{
ar[i]=rand()%50+1;
while(a!=i)
{
if(ar[i]==ar[a])
{
f=1;
break;
}
a++;
}
if(f==0)
{
printf("%d\n",ar[i]);
i++;
}
a=0;
}
}
Д/з:
К добавлению вышесказанного необходимо заполнить второй массив с клавиатуры и сравнить сколько было совпадений. Если было три совпадения - выигрыш составил 100 долларов, если четыре совпадения - 1000 долларов, если пять совпадений - 10000 долларов, если шесть совпадений - 1000000 долларов.
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main(void)
{
int ar[6],arr[6],f=0,s=0,g=0,a,i;
srand((unsigned)time(NULL));
for(i=0;i<6;i++)
{
printf("Vvedite 4islo %d: ",i+1);
scanf("%d",&arr[i]);
if(arr[i]>49||arr[i]<1)
{
printf("Vvodit ot 1 do 49\n");
i--;
continue;
}
for(a=0;a {
printf("Wo ze??\n");
i--;
break;
}
}
a=0;
printf("\n");
for(i=0;i<6;i++)
{
ar[i]=rand()%48+1;
for(a=0;a {
if(ar[i]==ar[a])
{
i--;
f=1;
break;
}
}
if(f==0)
{
while(g!=6)
{
if(ar[i]==arr[g])
{
s++;
break;
}
g++;
}
g=0;
}
f=0;
}
for(i=0;i<6;i++)printf("%3d",ar[i]);
printf("\n");
for(i=0;i<6;i++)printf("%3d",arr[i]);
printf("\n\n");
if(s==3)printf(" 100$\n\n");
else if(s==4)printf(" 1000$\n\n");
else if(s==5)printf(" 10000$\n\n");
else if(s==6)printf(" 1000000$\n\n");
}
№4
Написать функцию, которая принимает символьный массив и переменную по типу символ. Функция возвращает индекс из символьного массива, в котором появляется этот символ в первый раз.
№5
Написать функцию, которая принимает символьный массив и переменную по типу символ и возвращает индекс из символьного массива, где этот символ появляется в последний раз.
№6
Написать программу,которая вводит символьный массив не более 30 символов и вводит отдельный символ. Программа должна распечатать:
1. Все символы, находящиеся в символьном массиве до первого появления символа.
2. Распечатать все символы, находящиеся после последнего символа.
3. все симолы, находящиеся между первым и последним символами (обязательно при вводе ввести хотя бы дважды в символьный массив символ, который будет вводиться отдельно).
#include<stdio.h>
int f1(char a,char ar[30])
{
int i=0;
while(ar[i]!='\0')
{
if(a==ar[i])return i;
i++;
}
}
int f2(char a,char ar[30])
{
int j=0;
while(ar[j]!='\0')j++;
while(j!=0)
{
if(a==ar[j])return j;
j--;
}
}
void main(void)
{
char ar[30],a;
int i=0,j=30;
gets(ar);
scanf("%c",&a);
for(int s=0;s<f1(a,ar);s++)printf("%3c",ar[s]);
printf("\n");
for(s=f2(a,ar)+1;ar[s]!='\0';s++)printf("%3c",ar[s]);
printf("\n");
for(s=f1(a,ar)+1;s<f2(a,ar)-1;s++)printf("%3c",ar[s]);
читать дальше
Двухмерный массив
Объявление двухмерного массива:
int ar[3[5];
3 - количество строк;
5 - количество столбцов.
scanf("%d"&ar[2][1]);
Использование функций
двухмерный массив функции работает как одномерный, то есть все измерения, которые мы делаеи в функции с двухмерного массива - главная функция видит эти измерения.
Передача двухмерного массива в функцию
Обязаны объявить количество столбцов и не обязательно - количество строк.
1.void f(int ar[][5]);
2.void main(void)
{
int ar[3][5];
f(ar);
...
}
3.void f(int ar[][5])
{
...
}
№1
Написать порграмму, которая заполняет массив 4*4 целыми числами и строит одномерный массив с размером в четыре ячейки. Программа должна скопировать из каждой строки двухмерного массива максимальное число в одномерный массив.
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void Insert(int [][4]);
void Print(int [][4],int []);
void main(void)
{
int a[4][4],b[4];
Insert(a);
Print(a,b);
}
void Insert(int a[][4])
{
int i,j;
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=(rand()%201)-100;
}
void Print(int a[][4],int b[])
{
int i,j,max;
for(i=0;i<4;i++){
max=a[i][0];
for(j=0;j<4;j++){
printf("%8d",a[i][j]);
if(a[i][j]>max)
max=a[i][j];
}
b[i]=max;
printf("\n");
}
printf("\n\n\n\n");
for(i=0;i<4;i++)
printf("%8d",b[i]);
printf("\n\n\n\n");
}
Д/з:
Добавить третий массив одномерный на 4 ячейки, который выдаёт максимальное значение по столбцам.
В двухмерном квадратном массиве существуют объекты. Ячейки, находящиеся выше главной диагонали, составляют верхний треугольник. Ячейки, находящиеся ниже главной диагонали, составляют нижний треугольник.
Для заполнений двухмерного массива данных после объявления имени:
int box[][4]={{1,5,8,42},{-13,6,2,89},{34,67,2,8},{1,2,3,4}};
№2
Написать программу,которая использует массив данных с размером 4*4. Программма выводит на экран слово "yes", если сумма главной диагонали равна сумме верхнего треугольника и равна сумме нижнего треугольника. В противном случае "no".
Написать функцию, которая получает массив и возвращает единицу, если три суммы равны между собой и число 0, если нет.
int f1(int ar[4][4])
{
int a=0,b=0,c=0;
for(int i=0;i<4;i++)for(int j=0;j<4;j++)
{
if(j==i)a+=ar[i][j];
else if(j>i)b+=ar[i][j];
else c+=ar[i][j];
}
if(a==b&&a==c)return 1;
else return 0;
}
void main(void)
{
int ar[4][4]={{1,1,1,1},{1,2,1,1},{1,1,2,1},{1,1,1,1}};
if(f1(ar)==1)printf("yes\n\n");
else printf("no\n\n");
}
№3
Написать программу, которая вводит случайные числа от 0 до 9 включительно в двухмерный массив с размером 6*6. Программа должна подсчитать сколько в двухмерном массиве находится каждой цифры. Две функции:
1. Вводит случайные числа в двухмерный массив
2. Принимает двухмерный массив, распечатывает его и распечатывает сколько каждое число находится в массиве.
#include<stdlib.h>
#include<time.h>
void f1(int ar[6][6])
{
srand((unsigned)time(NULL));
for(int i=0;i<6;i++)for(int j=0;j<6;j++)ar[i][j]=rand()%10;
}
void f2(int ar[6][6])
{
int ar2[10]={0};
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
ar2[ar[i][j]]++;
printf("%3d",ar[i][j]);
}
printf("\n");
}
for(i=0;i<10;i++)printf("\n%d=%d\n",i,ar2[i]);
}
void main(void)
{
int ar[6][6];
f1(ar);
f2(ar);
printf("\n");
}
№4
Написать программу, которая вводит данные в двухмерный массив с размером 4*4 и выводит на экран слово "yes", если главная и второстепенная диагонали симметричны. В противном случае - слово "no".
Написать функцию, которая получает заполненный массив и вовзращает число 1, если главная и второстепенная диагонали симметричны, в противном случае - число 0.
int f1(int ar[4][4])
{
int s=0;
for(int i=0,f=3;i<f;i++,f--)if(ar[i][i]!=ar[f][f]||ar[i][f]!=ar[f][i])return 0;
return 1;
}
void main(void)
{
int ar[4][4]={{15,1,2,-2},{3,20,-8,5},{4,-8,20,6},{-2,8,7,15}};
if(f1(ar)==1)printf("yes\n\n");
else printf("no\n\n");
}
№5
Даны два одномерных массива с размером в десять ячеек каждый. Необходимо их заполнить рандомальными числами от 0 до 9. Необходимо распечатать эти два массива.
Создать одномреный массив в 20 ячеек, в который зайдут числа из первых двух массивов следующим образом: вначале - числа из первого до числа 0. 0 не вносить в третий массив. После этого вносятся числа из второго массива до числа 0. После этого возвращаемся на первый массив, продолжаем переносить числа в третий и т.д.
#include<stdlib.h>
#include<time.h>
void main(void)
{
int ar1[10],ar2[10],ar3[20],a=0,b=0;
srand((unsigned)time(NULL));
for(int i=0;i<10;i++)
{
ar1[i]=rand()%10;
ar2[i]=rand()%10;
}
for(i=0;i<10;i++)printf("%3d",ar1[i]);
printf("\n\n");
for(i=0;i<10;i++)printf("%3d",ar2[i]);
printf("\n\n");
i=0;
while(i<10||b<10)
{
while(ar1[b]!=0&&b<10)
{
ar3[a]=ar1[b];
b++;
a++;
}
b++;
while(ar2[i]!=0&&i<10)
{
ar3[a]=ar2[i];
i++;
a++;
}
i++;
}
printf("\n\n");
for(i=0;iprintf("\n\n");
}
№6
Написать программу, которая заполняет символьный массив не более 100 символов. Символьный массив состоит из букв, цифр и символов. Программа заполняет массив чисел из символьного массива. Написать функцию, которая получает заполненный символьный массив и пустой числовой, заполняет числовой массив числами, находящимися в символьном массиве.
Шаги выполнения программы:
1. Продвигаем индекс в симвльном массиве до появления цифры в нём;
2. Преображаем цифру символьную в число с помощью вычетания символа "0";
3. Если следующий символ тоже цифра, умножаем предыдущее число на 10 и добавляем новую цифру-число.
void f1(char ar1[],int ar2[])
{
int i=1,a=0;
while(ar1[i]!='\0')
{
while(ar1[i]>='0'&&ar1[i]<='9')
{
if(ar1[i-1]>='0'&&ar1[i-1]<='9')
{
a--;
ar2[a]=(ar2[a]*10)+(ar1[i]-'0');
}
else ar2[a]=ar1[i]-'0';
i++;
a++;
}
i++;
}
for(i=0;i printf("\n\n");
}
void main(void)
{
char ar1[100];
int ar2[100];
gets(ar1);
f1(ar1,ar2);
}
№7
Написать программу, которая заполняет двухмерный массив целыми положительными числами (размер массива - 5*5) и меняет давнные в ячейках в соответствии с суммой цифр в каждой из них.
#include<stdlib.h>
#include<time.h>
void main(void)
{
int ar[5][5],s=0,j=0;
srand((unsigned)time(NULL));
for(int i=0;i<5;i++)for(j=0;j<5;j++)ar[i][j]=rand()%100;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
for(i=0;i<5;i++)for(j=0;j<5;j++)
{
while(ar[i][j]>0)
{
s+=ar[i][j]%10;
ar[i][j]/=10;
}
ar[i][j]=s;
s=0;
}
printf("\n\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
}
№8
Написать программу, которая вводит в символьный массив предложение, состоящее из семи слов(размер массива - не более 80 символов). Написать функцию, которая принимает символьный массив и пчечатает два самых длинных слова в предложении. Между словами есть один пробел.
void f(char ar[])
{
int i=0,s=0,a=0,j=0,d=0,b=0,g=0;
while(b!=7)
{
while(ar[i]!=' '&&ar[i]!='\0')
{
s++;
i++;
}
if(s>a)
{
j=a;
g=d;
a=s;
d=i-1;
}
else if(s>j)
{
j=s;
g=i-1;
}
b++;
s=0;
i++;
}
while(ar[d]!=' ')d--;
while(ar[g]!=' ')g--;
d++;
g++;
for(;ar[d]!=' ';d++)printf("%c",ar[d]);
printf("\t");
for(;ar[g]!=' ';g++)printf("%c",ar[g]);
printf("\n\n");
}
void main(void)
{
char ar[80];
gets(ar);
f(ar);
}
№9
Написать программу, которая вводит в двухмерный массив случайные числа от -20 до 20 размером 4*4 и строит 2 одномерных массива. Необходимо написать функцию, которая принимает эти три массива - двухмерный массив с числами и два пучтых одномерных - и заполняет первый одномерный массив отрицательными числами из двухмерного и второй одномерный массив - положительными.
Написать вторую функцию, которая принимает три массива и красиво их распечатывает.
#include<stdlib.h>
#include<time.h>
void f1(int ar[4][4],int o[16],int p[16])
{
int a=0,b=0;
for(int i=0;i<4;i++)for(int j=0;j<4;j++)
{
if(ar[i][j]<0)
{
o[a]=ar[i][j];
a++;
}
else
{
p[b]=ar[i][j];
b++;
}
}
for(i=0;i printf("\n");
for(i=0;i printf("\n");
}
void f2(int ar[4][4],int o[16],int p[16])
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)printf("%d\t",ar[i][j]);
printf("\n");
}
}
void main(void)
{
int ar[4][4],o[16],p[16];
srand((unsigned)time(NULL));
for(int i=0;i<4;i++)for(int j=0;j<4;j++)ar[i][j]=rand()%41-20;
f1(ar,o,p);
f2(ar,o,p);
}
№10
2 массива 5*5. Заполняем 4*4.
void main(void)
{
int ar1[5][5],ar2[5][5],s1=0,s2=0,j=0;
srand((unsigned)time(NULL));
for(int i=0;i<4;i++)for(j=0;j<4;j++)
{
ar1[i][j]=rand()%20-10;
ar2[i][j]=rand()%20-10;
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)printf("%d\t",ar1[i][j]);
printf("\n");
}
printf("\n\n");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(ar1[i][j]>=0)s1++;
else s2++;
}
ar1[i][4]=s1;
ar1[4][i]=s2;
s1=0;
s2=0;
}
for(j=0;j<4;j++)
{
for(i=0;i<4;i++)
{
if(ar2[j][i]>=0)s1++;
else s2++;
}
ar2[j][4]=s1;
ar2[4][j]=s2;
s1=0;
s2=0;
}
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==4&&j==4)break;
else printf("%d\t",ar1[i][j]);
}
printf("\n");
}
printf("\n\n");
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{
if(i==4&&j==4)break;
else printf("%d\t",ar2[i][j]);
}
printf("\n");
}
printf("\n\n");
}

Это С. У меня сейчас программирование. Не обращай внимания) Просто сохранять надо так,ч тобы в любой момент достать можно было.. а на почте не удобно.
чего?О.о
да?..*заинтересовано* мож.. систему поиметь...)
а зря))
int func(int,int,int);
int main(void)
{
int a,b,c;
printf("%d\n",func(a,b,c));
return 0;
}
int func(int a,int b,int c)
{
printf("Enter 3 numbers:");
scanf("%d%d%d",&a,&b,&c);
return (a+b)/c;
}
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
void main(void)
{
int H[6],C[6],i,j,count=0;
srand((unsigned)time(NULL));
printf("\nEnter 6 numbers:");
for(i=0;i<6;i++){
printf("\nEnter number%d :",i+1);
scanf("%d",&H[i]);
if(!(H[i]>=1 && H[i]<=49)){
printf("\nThis Number not Between 1 - 49\n");
i--;
continue;
}
for(j=0;j if(H[i]==H[j]){
printf("\nNumber Exist,Enter New number:");
i--;
break;
}
}
printf("\nHuman:\n");
for(i=0;i<6;i++)
printf("%3d",H[i]);
for(i=0;i<6;i++){
C[i]=rand()%49+1;
for(j=0;j if(C[i]==C[j]){
i--;
break;
}
}
printf("\nComp:\n");
for(i=0;i<6;i++)
printf("%3d",C[i]);
printf("\n\n");
for(i=0;i<6;i++)
for(j=0;j<6;j++)
if(i!=j)
if(H[i]==C[j]){
count++;
break;
}
printf("\n Count=%d\n",count);
}
#include<time.h>
#include<stdlib.h>
void Insert(int a[][4])
{
int i,j;
srand((unsigned)time(NULL));
for(i=0;i<4;i++)
for(j=0;j<4;j++)
a[i][j]=(rand()%201)-100;
}
void Print(int a[][4],int b[])
{
int i,j,t=0;
for(i=0;i<4;i++)
{
b[t]=a[i][0];
for(j=0;j<4;j++)
{
printf("%8d",a[i][j]);
if(a[i][j]>b[t])b[t]=a[i][j];
}
t++;
printf("\n");
}
printf("\n\n\n\n");
for(i=0;i<4;i++)
printf("%8d",b[i]);
printf("\n\n\n\n");
}
void Print2(int a[][4],int b[])
{
int i,j,t=0;
for(i=0;i<4;i++)
{
b[t]=a[0][i];
for(j=0;j<4;j++)if(a[j][i]>b[t])b[t]=a[j][i];
t++;
}
printf("\n\n");
for(i=0;i<4;i++)
printf("%8d",b[i]);
printf("\n\n\n\n");
}
void main(void)
{
int a[4][4],b[4];
Insert(a);
Print(a,b);
Print2(a,b);
}