Thứ Hai, 9 tháng 2, 2015

Hàm - chương trình con - void in C

Hàm - chương trình con - void in C

code và chương trình sẵn Tại Đây




#include <stdio.h>
#include <stdlib.h>
void s (int *x, int *y);
int main(int argc, char *argv[]) {
 printf (" vao 2 so nguyen : ");
 int x,y;
 scanf("%d%d",&x,&y);
 s(&x,&y);
 printf("2 so sau khi hoan vi la : %d  %d",x,y); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
void s (int *x, int *y){
 int z = *x;
 *x = *y;
 *y = z;
}


hoan-vi
Hoán vị






#include <stdio.h>
#include <stdlib.h>
void r (int a[], int n);
int main(int argc, char *argv[]) {
 printf("nhap vao do dai mang: ");
 int i,n;
 scanf("%d",&n);
 int a[100];
 for (i=0;i<n;i++) {
  printf ("A[%d]= ",i+1);
  scanf ("%d",&a[i]);
 } 
 r (a,n); 
 printf("chuoi sau khi dao nguoc la: ");
 for (i=0;i<n;i++) printf ("%d ",a[i]); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
void r (int a[100], int n){
 int i,j;
 for (i=0;i<n/2;i++){
  j=a[i];
  a[i] = a[n-1-i];
  a[n-1-i]=j;
 }
}
Dao-nguoc
Đảo ngược






#include <stdio.h>
#include <stdlib.h>
int c(char a[], char i);
int main(int argc, char *argv[]) {
 char a[100],b;
 printf("vao chuoi ki tu A: ");
 gets(a);
 printf("vao ki tu B: ");
 gets(&b);
 printf("\n\n\n");
 c(a,b);
 printf("\n\n\n");
 system("pause");
 return 0;
}
int c(char a[100], char b){
 int i,t=0;
 for (i=0;i<100;i++) if (a[i]== b) t=t+1;
 if (t==0) printf("-1"); 
 if (t!=0) printf("%d",t);
}


tim-kiem
tìm kiếm




end

Hàm - chương trình con - function in C (tiếp)


Hàm - chương trình con - function in C (tiếp)



code và chương trình sẵn Tại Đây

1. Write a function which accepts an integer value as input, and returns an integer which is the cube of that input


#include <stdio.h>
#include <stdlib.h>

/* Write a function which accepts an integer value as input, and returns an integer which is the cube of that input */
int l(int);
int main(int argc, char *argv[]) {
 printf("vao X= ");
 int x;
 scanf("%d",&x);
 printf("x^3 = %d",l(x)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int l(int x){
 int y = x*x*x;
 return y;
}

lap-phuong
Lập phương


2. Write a function that accepts a char as input and returns true if the char is a digit from 0 to 9 or false if the character is not a digit from 0 to 9



#include <stdio.h>
#include <stdlib.h>
/* Write a function that accepts a char as input and returns true 
if the char is a digit from 0 to 9 or false if the character is not a digit from 0 to 9 */
int tf(char);
int main(int argc, char *argv[]) {
 printf("vao ki tu : ");
 char x;
 scanf("%c",&x);
 if (tf(x)) printf("%c nam giua 0 - 9",x);
  else printf ("%c khong nam giua 0 - 9",x); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int tf(char x){
 int y;
 if (x >= '0' && x<= '9') y = 1;
 else y = 0;
 return y;
}

tim-kiem
tìm kiếm



#include <stdio.h>
#include <stdlib.h>
/* . Write a function named Smallest that takes three integer inputs 
and returns an integer that is the smallest of the three inputs.  
Write the prototype for the Smallest function.  
Write  a program that gets 3 integers from a user and displays the smallest. */
int m(int,int,int);
int main(int argc, char *argv[]) {
 printf ("vao 3 so : ");
 int x,y,z;
 scanf("%d%d%d",&x,&y,&z);
 printf(" so nho nhat trong 3 so %d %d %d la : %d",x,y,z,m(x,y,z)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int m(int x,int y, int z){
 int i =x;
 if (i > y) i = y;
 if (i > z) i = z;
 return i;
}

min
min


4. Write a function that, given a letter of the alphabet, returns true if the letter is a vowel (lower or uppercase) and returns false if the letter is not a vowel.



#include <stdio.h>
#include <stdlib.h>
/* Write a function that, given a letter of the alphabet, 
returns true if the letter is a vowel (lower or uppercase) and returns false if the letter is not a vowel. */
int t(char);
int main(int argc, char *argv[]) {
 printf ("vao 1 chu: ");
 char x;
 gets(&x);
 if (t(x)) printf ("%c la nguyen am",x);
  else printf ("%c khong phai la nguyen am",x);
 printf("\n\n\n");
 system("pause");
 return 0;
}
int t(char x){
 int t;
 if (x=='u'||x=='U'||x=='e'||x=='E'||x=='o'||x=='O'||x=='a'||x=='A'||x=='i'||x=='I') t= 1;
  else t=0;
 return t;
}


tim-nguyen-am
tim nguyên âm


end






















Hàm - chương trình con - function in C

Hàm - chương trình con -  function in C

- chương trình và code sẵn Tại Đây




1. Write a C program that accepts a number and square the number with the help of a function.To do this,


#include <stdio.h>
#include <stdlib.h>
/* Write a C program that accepts a number and square the number with the help of a function.
To do this */
int BP (int);
int main(int argc, char *argv[]) {
 printf ("vao x = ");
 int x;
 scanf("%d",&x);
 printf("binh phuong cua x la y = %d", BP(x)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int BP (int x) {
 int y = x*x;
 return (y);
}

binh-phuong
bình phương


2. Write a C program to find the area and perimeter of a circle.


#include <stdio.h>
#include <stdlib.h>
/* 2. Write a C program to find the area and perimeter of a circle. */
float c(float);
float v(float);
int main(int argc, char *argv[]) {
 printf ("ban kinh r = ");
 float r;
 scanf("%f",&r);
 printf(" chu vi la : %f \n the tich la : %f",c(r),v(r)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
float c(float x){
 float y = 2*x*3.14159265359;
 return y;
}
float v(float x){
 float y = x*x*3.14159265359;
 return y;
}


chu-vi-the-tich-hinh-tron
chu vi thể tính hình tròn





3. Write a C program to calculate the factorial of an integer


#include <stdio.h>
#include <stdlib.h>
/* 3. Write a C program to calculate the factorial of an integer */
int g(int);
int main(int argc, char *argv[]) {
 printf("vao so nguyen X = ");
 int x;
 scanf("%d",&x);
 printf ("%d! = %d",x,g(x)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int g(int x){
 int y = 1;
 for (;x>0;x--) y=y*x;
 return y;
}

tim-giai-thua
tìm giai thừa



4. Write a program with a function that takes two int parameters, adds them together, then returns the sum. The program should ask the user for two numbers, then call the function with the numbers as arguments, and tell the user the sum.


#include <stdio.h>
#include <stdlib.h>
/* Write a program with a function that takes two int parameters, 
adds them together, then returns the sum. The program should ask the user for two numbers, 
then call the function with the numbers as arguments, and tell the user the sum */
int s(int,int);
int main(int argc, char *argv[]) {
 int x,y;
 printf ("vao x = ");
 scanf ("%d",&x);
 printf ("vao y = ");
 scanf ("%d",&y);
 printf("%d + %d = %d ",x,y,s(x,y)); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
int s(int x,int y){
 int z = x+y;
 return z;
}

tinh-tong
tính tông



end
















Thứ Tư, 4 tháng 2, 2015

mảng ký tự - char array

mảng ký tự - char array 

đây là bài viết về vòng lặp trong C bao gồm có các bài tập về mảng ký tự các bạn có thể tải sẵn bài tâp và code của mình TẠI ĐÂY để tiện theo dõi bài viết.

đây là bài viết về mảng ký tự 1 chiều nếu các bạn chưa chắc về kiến thức mảng số 1 chiều  thì nên tham khảo lại TẠI ĐÂY . chúc các bạn vui vẻ.



LÝ THUYẾT: lục tung cả google cũng không có lý thuyết... cô giáo cũng ko có kĩ phần này nên cứ quy của mảng số sang mảng chữ cũng được... code được hết :))


và sau đây là bài tâp *tung hoa-tung hoa*.....




Viết một chương trình có khả năng in các chữ cái trong một mảng char theo thứ tự ngược. vì
Ví dụ, nếu mảng có chứa {'c', 's', 'c', '2', '6', '1'} đầu ra (để các thiết bị đầu cuối)
cần được "162csc"


#include <stdio.h>
#include <stdlib.h>

/* Write a program which prints the letters in a char array in reverse order. For 
example, if the array contains {'c', 's', 'c', '2', '6', '1'}the output (to the terminal) 
should be "162csc" */

int main(int argc, char *argv[]) {
 char a[20];
 int i;
 printf("vao chuoi ky tu: "); 
 for(i=19;i>=0;i--) a[i]='0';
 gets(a);
 for(i=19;i>=0;i--) if (a[i]!='0') printf ("%c",a[i]); 
 printf("\n\n\n");
 system("pause");
 return 0;
}


in-nguoc
in ngược



bài 2. Write a  program : declare a char array and the size of the array (of type char). This function counts the number of digit letters in the char array.


2. Viết chương trình: khai báo một mảng char và kích thước của mảng (kiểu char). Chức năng này đếm số chữ số trong mảng char.




#include <stdio.h>
#include <stdlib.h>

/* Write a  program : declare a char array and the size of the array 
(of type char). This function counts the number of digit letters in the char array */

int main(int argc, char *argv[]) {
 char a[30];
 int i,t;
 printf("vao chuoi ki tu: ");
 for(i=29;i>=0;i--) a[i]='0';
 gets(a); t=0;
 printf("%s\n",a);
 for (i=0;i<30;i++) if (a[i] != '0') t=t+1;
 printf("so ki tu trong chuoi la: %d",t-1);   
 printf("\n\n\n");
 system("pause");
 return 0;
}

dem-ky-tu
đếm kí tự


3. Write a program that counts the number of words in a string


3. Viết chương trình đếm số từ trong một chuỗi



code:
#include <stdio.h>
#include <stdlib.h>

/* Write a program that counts the number of words in a string */

int main(int argc, char *argv[]) {
 char a[30];
 int i,t;
 printf("vao chuoi ky tu: "); 
 gets(a);
 t=1;
 for(i=0;i<30;i++) if (a[i]==' ') t=t+1;
 printf("so tu trong chuoi tren la: %d ",t);
 printf("\n\n\n");
 system("pause");
 return 0;
}
dem-chu
đếm chữ



Bài 4. Write a program that accept two string, after checking if string1 equals string2 then print 'string 1 equals string2', else print string1 less than or greater than string 2.


4. Viết chương trình chấp nhận hai chuỗi, sau khi kiểm tra nếu string1 bằng string2 sau đó in 'string 1 bằng string2', khác in string1 nhỏ hơn hoặc lớn hơn chuỗi 2.

#include <stdio.h>
#include <stdlib.h>

/* Write a program that accept two string,
 after checking if string1 equals string2 then print 
 'string 1 equals string2', else print string1 less than
  or greater than string 2 */

int main(int argc, char *argv[]) {
 char a[20],b[20];
 int i,j,k;
 for (i=0;i<20;i++) { 
  a[i]='0'; b[i]='0';
 }
 printf("vao chuoi A: ");
 gets(a);
 printf("vao chuoi B: ");
 gets(b);
 k=0; j=0;
 for (i=0;i<20;i++) if (a[i]!='0') j=j+1;
 for (i=0;i<20;i++) if (b[i]!='0') k=k+1;
 if (j==k) printf ("string 1 equals string 2");
  else if (j>k) printf ("string 1 longer string 2");
   else printf ("string 1 shorter string 2");
 printf("\n\n\n");
 system("pause");
 return 0;
}
 
so-sanh-chuoi
so sánh chuỗi




5. Write a function that scans a character array for the character - and replaces it with _


5. Viết một chức năng quét một mảng ký tự cho các nhân vật - và thay thế nó bằng _


#include <stdio.h>
#include <stdlib.h>

/* Write a function that scans a character array for the character - and replaces it with _ */

int main(int argc, char *argv[]) {
 
 char a[20];
 int i;
 for (i=0;i<20;i++)  a[i]='0';
 printf("vao chuoi A: ");
 gets(a);
 for (i=0;i<20;i++) if (a[i]!='0') if (a[i]=='-') a[i]='_';
 printf("\n\n\n");
 puts(a);  
 printf("\n\n\n");
 system("pause");
 return 0;
}


thay-the-ky-tu
thay thế ký tự


trên đây là toàn bộ bài tập về phần mảng 1 chiều... các bạn có gì thắc mắc cứ pm xuống dưới nazzzzzz



Mảng dữ liệu số trong C - array in C

Mảng dữ liệu số trong C - array in C

đây là bài viết về các mảng aray trong C các bạn có thể tải trước bài tập và code mình làm sẵn TẠI ĐÂY để tiện theo dõi bài viết:

đây là bài viết về mảng 1 chiều nếu các bạn chưa chắc về kiến thức về vòng lặp thì nên tham khảo lại TẠI ĐÂY . chúc các bạn vui vẻ.

lý thuyết Mảng:

đọc xong bài này, các bạn sẽ nắm được các vấn đề sau:
• Khái niệm về kiểu dữ liệu mảng cũng như ứng dụng của nó.
• Cách khai báo biến kiểu mảng và các phép toán trên các phần tử của mảng.

I. GIỚI THIỆU KIỂU DỮ LIỆU “KIỂU MẢNG”TRONG C


            Mảng là một tập hợp các phần tử cố định có cùng một kiểu, gọi là kiểu phần tử.
Kiểu phần tử có thể là có các kiểu bất kỳ: ký tự, số, chuỗi ký tự…; cũng có khi ta sử
dụng kiểu mảng để làm kiểu phần tử cho một mảng (trong trường hợp này ta gọi là
mảng của mảng hay mảng nhiều chiều).

            Ta có thể chia mảng làm 2 loại: mảng 1 chiều và mảng nhiều chiều.

            Mảng là kiểu dữ liệu được sử dụng rất thường xuyên. Chẳng hạn người ta cần
quản lý một danh sách họ và tên của khoảng 100 sinh viên trong một lớp. Nhận thấy
rằng mỗi họ và tên để lưu trữ ta cần 1 biến kiểu chuỗi, như vậy 100 họ và tên thì cần
khai báo 100 biến kiểu chuỗi. Nếu khai báo như thế này thì đoạn khai báo cũng như
các thao tác trên các họ tên sẽ rất dài dòng và rắc rối. Vì thế, kiểu dữ liệu mảng giúp
ích ta trong trường hợp này; chỉ cần khai báo 1 biến, biến này có thể coi như là tương
đương với 100 biến chuỗi ký tự; đó là 1 mảng mà các phần tử của nó là chuỗi ký tự.
Hay như để lưu trữ các từ khóa của ngôn ngữ lập trình C, ta cũng dùng đến một mảng
để lưu trữ chúng.

II. MẢNG 1 CHIỀU

           Nếu xét dưới góc độ toán học, mảng 1 chiều giống như một vector. Mỗi phần tử của mảng
một chiều có giá trị không phải là một mảng khác.

II.1. Khai báo

II.1.1. Khai báo mảng với số phần tử xác định (khai báo tường minh)
Cú pháp:
<Kiểu> <Tên mảng ><[số phần tử]>
Ý nghĩa:
- Tên mảng: đây là một cái tên đặt đúng theo quy tắc đặt tên của danh biểu. Tên này
cũng mang ý nghĩa là tên biến mảng.
- Số phần tử: là một hằng số nguyên, cho biết số lượng phần tử tối đa trong mảng là
bao nhiêu (hay nói khác đi kích thước của mảng là gì).
- Kiểu: mỗi phần tử của mảng có dữ liệu thuộc kiểu gì.
- Ở đây, ta khai báo một biến mảng gồm có số phần tử phần tử, phần tử thứ nhất là
tên mảng [0], phần tử cuối cùng là tên mảng[số phần tử -1]

Ví dụ:
int a[10]; /* Khai báo biến mảng tên a, phần tử thứ nhất là a[0], phần tử cuối cùng là a[9].*/
Ta có thể coi mảng a là một dãy liên tiếp các phần tử trong bộ nhớ như sau:

Vị trí                 0      1   2     3      4     5      6     7     8     9
Tên phần tử   a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]


II.1.2. Khai báo mảng với số phần tử không xác định (khai báo không tường
minh)

Cú pháp: 
<Kiểu> <Tên mảng> <[]>
        Khi khai báo, không cho biết rõ số phần tử của mảng, kiểu khai báo này thường được
áp dụng trong các trường hợp: vừa khai báo vừa gán giá trị, khai báo mảng là tham số hình
thức của hàm.
     a. Vừa khai báo vừa gán giá trị

Cú pháp:
<Kiểu> <Tên mảng> []= {Các giá trị cách nhau bởi dấu phẩy}
          Nếu vừa khai báo vừa gán giá trị thì mặc nhiên C sẽ hiểu số phần tử của mảng là số
giá trị mà chúng ta gán cho mảng trong cặp dấu {}. Chúng ta có thể sử dụng hàm sizeof()
để lấy số phần tử của mảng như sau:

          Số phần tử=sizeof(tên mảng)/ sizeof(kiểu)
           b. Khai báo mảng là tham số hình thức của hàm, trong trường hợp này ta không cần
chỉ định số phần tử của mảng là bao nhiêu.

II.2 Truy xuất từng phần tử của mảng

      Mỗi phần tử của mảng được truy xuất thông qua Tên biến mảng theo sau là chỉ số
nằm trong cặp dấu ngoặc vuông [ ]. Chẳng hạn a[0] là phần tử đầu tiên của mảng a được khai
báo ở trên. Chỉ số của phần tử mảng là một biểu thức mà giá trị là kiểu số nguyên.
Với cách truy xuất theo kiểu này, Tên biến mảng[Chỉ số] có thể coi như là một biến
có kiểu dữ liệu là kiểu được chỉ ra trong khai báo biến mảng.
Ví dụ
int a[10];

Trong khai báo này, việc truy xuất các phần tử được chỉ ra trong hình 1. Chẳng hạn
phần tử thứ 2 (có vị trí 1) là a[1]…


bài tập luyện tập:

Bài 1. Write a program that asks the user to type 10 integers of an array. The program must compute and write how many integers are greater than or equal to 10.


1. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng. Chương trình phải tính toán và viết bao nhiêu số nguyên lớn hơn hoặc bằng 10.

code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of an array. The program must compute 
and write how many integers are greater than or equal to 10 */

int main(int argc, char *argv[]) {
 int a[10],i,t;
 for (i=0;i<10;i++) {
  printf("A[%d]= ",i+1);
  scanf("%d",&a[i]);
 }
 t=0;
 for (i=0;i<10;i++){
  if (a[i] > 10) t = t +1; 
 }
 printf("tong so lon hon 10 la: %d",t);
 
 printf("\n\n\n");
 system("pause");
 return 0;
}

dem-so-lon-hon-10
đếm số lớn hơn 10


bài 2. Write a program that asks the user to type 10 integers of an array. The program must output the largest element in the array, and the index at which that element was found.

2. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng. Sản lượng chương trình phải là yếu tố lớn nhất trong mảng, và các chỉ số mà tại đó yếu tố đó đã được tìm thấy.

code:

#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of an array.
 The program must output the largest element in the array, 
 and the index at which that element was found */

int main(int argc, char *argv[]) {
  int a[10],i,m;
 for (i=0;i<10;i++) {
  printf("A[%d]= ",i+1);
  scanf("%d",&a[i]);
 }
 m=a[0];
 for (i=0;i<10;i++) if (m<a[i]) m=a[i];
 printf("\nso lon nhat la: %d\nla nhung so tai vi tri: ",m);
 for (i=0;i<10;i++) if (m==a[i]) printf("%d  ",i+1);  
 printf("\n\n\n");
 system("pause");
 return 0;
}
tim-vi-tri-so-lon-nhat
tìm vị trí số lớn nhất


Bài 3. Input values are accepted from the user into the array. Displays highest of the entered values. Prints average of values entered.

3. Giá trị đầu vào được chấp nhận từ người sử dụng vào mảng. Hiển thị cao nhất của các giá trị nhập vào. In trung bình của các giá trị nhập vào.

code:


#include <stdio.h>
#include <stdlib.h>

/* Input values are accepted from the user into the array. Displays highest of the entered values. Prints average of values entered */

int main(int argc, char *argv[]) {
 int s;
 printf("so gia tri ban muon co trong mang: ");
 scanf("%d",&s);
 int a[s],i,j,m,t;
 for (i=0; i<s; i++){
  printf("A[%d]= ",i+1);
  scanf("%d",&a[i]);
 }
 m=a[0];
 t=0;
 for (i=0;i<s;i++){
  t=t+a[i];   
  if (m<a[i]) m=a[i];
 }
 printf("\nso lon nhat la: %d: ",m);
 printf("\nso trung binh cong la: %d",t/i); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
lon-nhat-trung-binh-cong
số lớn nhất và số TBC

Bài 4: Write a program that accepts the following numbers in an array and reverses the array


5: Viết chương trình chấp nhận những con số sau đây trong một mảng và đảo ngược mảng


code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that accepts the following numbers in an array and reverses the array */

int main(int argc, char *argv[]) {
 int s;
 printf("nhap so luong cac gia tri trong mang: ");
 scanf("%d",&s);
 int a[s],b[s],i;
 for (i=0;i<s;i++){
  printf("A[%d]= ", i+1);
  scanf("%d",&a[i]);
  b[s-i-1] = a[i];                                                                                                                                           
 }
 printf("\n");
 for (i=0;i<s;i++) printf("A[%d]= %d\t",i+1,a[i]);
 printf("\n");
 for (i=0;i<s;i++) printf("B[%d]= %d\t",i+1,b[i]);
 printf("\n\n\n");
 system("pause");
 return 0;
}

in-nguoc-mang
in ngược mảng



5. Write a program to count the number of vowels in a line of text


5. Viết chương trình đếm số lượng các nguyên âm trong một dòng văn bản

code:


#include <stdio.h>
#include <stdlib.h>

/*  Write a program to count the number of vowels in a line of text */

int main(int argc, char *argv[]) {
 char s[50];
 int i,j;
 printf("vao 1 chuoi: ");
 gets(s);
 j=0;
 for (i=0; s[i]!='\0';i++){
  if (s[i]=='u' || s[i]=='e' || s[i]=='o' || s[i]=='a' || s[i]=='i') j=j+1;
 }
 printf("tong cac chu cai la nguyen am la: %d",j); 
 printf("\n\n\n");
 system("pause");
 return 0;
}

dem-nguyen-am
đếm nguyên âm

6. Write a program that asks the user to type 10 integers of an array and an integer V. The program must search if V is in the array of 10 integers. The program writes "V is in the array" or "V is not in the array"


6. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng và một số nguyên V. Chương trình phải tìm kiếm nếu V là trong mảng 10 số nguyên. Chương trình viết "V là trong mảng" hoặc "V không phải là trong mảng".


code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of an array and an integer V. 
The program must search if V is in the array of 10 integers. 
The program writes "V is in the array" or "V is not in the array" */

int main(int argc, char *argv[]) {
 int a[10],i,b,v;
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }
 printf("nhap V= ");
 scanf("%d",&v);
 b=0;
 for(i=0;i<10;i++) if(v==a[i]) b=1;
 if (b==1) printf ("V is in the array"); else printf ("V is not in the array"); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
kiem-tra
kiểm tra 

Bài 7. Write a program that asks the user to type 10 integers of an array and an integer value V. The program must search if the value V exists in the array and must remove the first occurrence of V, shifting each following element left and adding a zero at the end of the array. The program must then write the final array


7. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng và một số nguyên V. Chương trình phải tìm kiếm nếu giá trị V tồn tại trong mảng và phải loại bỏ sự xuất hiện đầu tiên của V, chuyển mỗi yếu tố sau đây trái và thêm một số không ở cuối mảng. Sau đó chương trình phải viết các mảng thức

code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers 
of an array and an integer value V. The program must search 
if the value V exists in the array and must remove the first occurrence of V,
 shifting each following element left and adding a zero at the end of the array. 
 The program must then write the final array */

int main(int argc, char *argv[]) {
  int a[10],i,b,v;
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }
 printf("nhap V= ");
 scanf("%d",&v);
 for(i=0;i<10;i++) if(v==a[i]) break;
 for (i;i<10;i++) a[i]=a[i+1];
 a[9]=0; printf("\n\n\n");
 for (i=0;i<10;i++) printf("%d  ",a[i]);
 
 printf("\n\n\n");
 system("pause");
 return 0;
}
them-phan-tu-vao-mang
thêm phần tử vào mảng


Bài 8. Write a program that asks the user to type 10 integers of an array and an integer value V and an index value i between 0 and 9. The program must put the value V at the place i in the array, shifting each element right and dropping off the last element. The program must then write the final array


8. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng và một số nguyên V và một giá trị chỉ số i giữa 0 và 9. Chương trình phải đặt giá trị V tại nơi i trong mảng, mỗi phần tử chuyển quyền và thả ra khỏi phần tử cuối cùng. Sau đó chương trình phải viết các mảng thức

code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of 
an array and an integer value V and an index value i between 0 and 9. 
The program must put the value V at the place i in the array, shifting 
each element right and dropping off the last element. 
The program must then write the final array */

int main(int argc, char *argv[]) {
 int a[10],i,b,v,j;
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }
 printf("nhap V= ");
 scanf("%d",&v); 
 printf("nhap i= ");
 scanf("%d",&j);
 j=j-1;
 printf("\n\n\n");
 for (i=0;i<10;i++) printf("%d ",a[i]); 
 for(i=9;i>j;i=i-1)  a[i]=a[i-1]; 
 a[j]=v; printf("\n\n\n");
 for (i=0;i<10;i++) printf("%d ",a[i]); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
them-vao-vi-tri
Thêm V vào vị trí i


Bài 9. Write a program that asks the user to type 10 integers of an array. The program will then display either "the array is growing", "the array is decreasing", "the array is constant", or "the array is growing and decreasing."

9. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng. Chương trình sau đó sẽ hiển thị hoặc là "mảng đang phát triển", "mảng đang giảm", "mảng là liên tục", hoặc "mảng đang phát triển và giảm."

code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of an array. 
The program will then display either "the array is growing", "the array is decreasing", 
"the array is constant", or "the array is growing and decreasing". */

int main(int argc, char *argv[]) { 
 int a[10],i,j,k,l;
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }
 j=k=l=0;
 for (i=0;i<9;i++){
  if (a[i] > a[i+1]) j=j+1;
  if (a[i] < a[i+1]) k=k+1;
  if (a[i]==a[i+1]) l=l+1;
 }
 if (k==9) printf("the array is growing");
 else  if (j==9) printf("the array is decreasing");
    else  if (l==9) printf("the array is constant");
      else printf("the array is growing and decreasing");
 printf("\n\n\n");
 system("pause");
 return 0;
}
xac-dinh-mang
xác định mảng

10. Write a program that asks the user to type 10 integers of an array. The program will then sort the array in descending order and display it.

10. Viết chương trình yêu cầu người dùng nhập 10 số nguyên của một mảng. Chương trình sau đó sẽ sắp xếp mảng theo thứ tự và hiển thị nó.

code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program that asks the user to type 10 integers of an array. 
The program will then sort the array in descending order and display it. */

int main(int argc, char *argv[]) { 
 int a[10],i,j,k;
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }
 for (i=0;i<10;i++) for(j=0;j<10;j++) if (a[i]<a[j]) {
  k=a[i];
  a[i]=a[j];
  a[j]=k;
 }
 for(i=0;i<10;i++)printf ("%d  ",a[i]); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
sap-xep-mang
sắp xếp mảng


11. Write a program which takes 2 arrays of 10 integers each, a and b. c is an array with 20 integers. The program should put into c the appending of b to a, the first 10 integers of c from array a, the latter 10 from b. Then the program should display c.

11. Viết một chương trình trong đó có 2 mảng 10 số nguyên mỗi a và b. c là một mảng với 20 số nguyên. Chương trình này nên đưa vào c các phụ thêm của b cho a, 10 số nguyên đầu tiên của c từ mảng một, sau 10 từ b. Sau đó chương trình sẽ hiển thị c.


code:


#include <stdio.h>
#include <stdlib.h>

/* Write a program which takes 2 arrays of 10 integers each, a and b. 
c is an array with 20 integers. The program should put into c the appending of b to a, 
the first 10 integers of c from array a, the latter 10 from b. Then the program should display c */

int main(int argc, char *argv[]) { 
 int a[20],i; 
 for(i=0;i<10;i++){
  printf("A[%d]=",i+1);
  scanf("%d",&a[i]);
 }  
 for(i=10;i<20;i++){
  printf("B[%d]=",i-9);
  scanf("%d",&a[i]);
 }  
 for(i=0;i<20;i++) printf("C[%d]=%d\t",i+1,a[i]); 
 printf("\n\n\n");
 system("pause");
 return 0;
}
cong-mang
cộng mảng

kết luận: trên đây là kiến thức về mảng số 1 chiều... chúc các bạn thành công trong các bài tập trên :v :v

Thứ Hai, 2 tháng 2, 2015

Cấu trúc vòng lặp for, while, do-while

Cấu trúc vòng lặp for, while, do-while.


đây là bài viết về vòng lặp trong C bao gồm có vòng lặp for, vòng lặp while, vòng lặp do-while các bạn có thể tải sẵn bài tâp và code của mình TẠI ĐÂY để tiện theo dõi bài viết.


đây là bài viết về lệnh lặp nếu các bạn chưa chắc về kiến thức rẽ nhánh thì nên tham khảo lại TẠI ĐÂY . chúc các bạn vui vẻ.


sau đây là chi tiết :


Giới thiệu

- Một trong những điểm mạnh lớn nhất của máy tính là khả năng thực hiện một chuỗi các lệnh lặp đi lặp lại. Điều đó có được là do sử dụng các cấu trúc lặp trong ngôn ngữ lập trình. Trong bài này bạn sẽ tìm hiểu các loại vòng lặp khác nhau C.

1. Vòng lặp

- Vòng lặp là một đoạn mã lệnh trong chương trình được thực hiện lặp đi lặp lại cho đến khi thỏa mãn một điều kiện nào đó. Vòng lặp là một khái niệm cơ bản trong lập trình cấu trúc. Trong C có các loại vòng lặp sau (for, while, do...while)
- Ta sử dụng các toán tử quan hệ và toán tử logic trong các biểu thức điều kiện để điều khiển sự thực hiện của vòng lặp.

2. Vòng lặp "for"

- Cú pháp tổng quát của vòng lặp "for" như sau:

sơ đồ khối:

cau-truc-vong-lap
cấu trúc vòng lặp


code:
for (khởi tạo giá trị cho biến điều khiển; biểu thức điều kiện; biểu thức thay đổi giá trị của biến điều khiển) 
{
 Cậu lệnh (các câu lệnh); 
}


- Khởi tạo giá trị cho biến điều khiển là một câu lệnh gán giá trị ban đầu cho biến điều khiển trước khi thực hiện vòng lặp. Lênh này chỉ được thực hiện duy nhất một lần. Biểu thức điều kiện là một biểu thức quan hệ, xác định điều kiện thoát cho vòng lặp. Biểu thức thay đổi giá trị của biến điều khiển xác định biến điều khiển sẽ bị thaddooior thế nào sau mỗi lần vòng lặp được lặp lại (thường là tăng hoặc giảm giá trị của biến điều khiển). Ba phần trên được phân cách bởi dấu chấm phẩy. Câu lệnh trong than vòng lặp có thể là một lệnh duy nhất (lệnh đơn) hoặc lệnh phức (nhiều lệnh).

- Vòng lặp for sẽ tiếp tục được thực hiện chừng nào mà biểu thức điều kiện còn [b]đúng (true)[b]. Khi biểu thức điều kiện là sai (false), chương trình sẽ thoát ra khỏi vòng lặp for

- Toán tử "phẩy (comma)": phần biểu thức trong toán tử for có thể được mở rộng để thêm vào các lệnh khởi tạo hay các lệnh thay đổi giá trị của biến. Cú pháp như sau:

code:
Biểu_thức_1, Biểu_thức_2
- Các biểu thức trên được phân tách bởi toán tử phẩy ",", và được thực hiên từ trái sang phải. Thứ tự của các biểu thức là quan trọng trong trường hợp giá trị của biểu thức thứ hai phục thuộc vào giá trị của biểu thức thứ nhất. Toán tử này có độ ưu tiên thấp nhất trong các toán tử của C.


3. Vòng lặp "for" lông nhau

- Một vòng lặp for được gọi là lông nhau khi nó nằm bên trong một vòng lặp for khác. Nó sẽ có dạng tương tự như sau:

sơ đồ khối

vong-lap-for-long-nhau
vòng lặp for lồng nhau


code:
for (i=1; i< max1; i ++)
{
       ....
       ....
       for (j=1;j< max1;j++)
       {
             ....
             ....
        }
}
- Vòng lặp for khi không có bất kỳ thành phần nào sẽ là một vòng lặp vô tận. Tùy nhiên, lệnh break bên trong vòng lặp sẽ cho phép thoát khỏi vòng lặp.

4. Vòng lặp "while"

- Cấu trúc lặp thứ hai trong C là vòng lặp while. Cú pháp tổng quát như sau:

sơ đồ khối:

cau-truc-vong-lap
cấu trúc vòng lặp


code:
while (điều_kiện_là_đúng)
      câu_lệnh;
- Trong đó, câu_lệnh có thể là rỗng, hay một lệnh đơn, hay một khối lệnh. Nếu vòng lặp while chứa một tập lệnh thì chúng phải được đặt trong cặp ngoặc xoắn {}. điều_kiện có thể là biểu thức bất kỳ. Vòng lặp sẽ được thực hiện lặp đi lặp lại khi điều kiện trên là đúng (true). Chương trình sẽ chuyển đến thực hiện lệnh tiếp theo sau vòng lặp khi điều kiện trên là sai (false).
- Vòng lặp for có thể được sử dụng khi số lần thực hiện vòng lặp đã được xác định trước. Khi số lần lặp không biết trước, vòng lăp while có thể được sử dụng.

5. Vòng lặp "do...while"

- Vòng lặp do ... while còn được gọi là vòng lặp do trong C. Không giống như vòng lặp forwhile, vòng lặp này kiểm tra điều kiện tại cuối vòng lặp. Điều này có nghĩa là vòng lặpdo...while sẽ được thực hiện ít nhất một lần, ngay cả khi điều kiện la sai (false) ở lần chạy đầu tiên. Cú pháp tổng quát của vòng lặp do...while viết như sau:

sơ đồ khối

cau-truc-vong-lap-do-while
cấu trúc vòng lặp do-while


code:
do
     câu_lệnh
}
while(điều_kiện);


- Cặp dấu ngoặc "{}" là không cần thiết khi chỉ có một câu lệnh hiện diện trong vòng lặp, nhưng việc sử dụng dấu ngoặc "{}" là một thói quen tốt. Vòng lặp do...while lặp đến khi điều_kiện mang giá trị false. Trong vòng lặp do...while, câu_lệnh (khối các câu lệnh) sẽ được thực thi trước, và sau đó điều_kiện được kiểm tra. Nếu điều_kiện là true, chương trình sẽ quay lại thực hiện lệnh do. Nếu điều kiện là false, chương trình chuyển đến thực hiện lệnh nằm sau vòng lặp. Tương tự như vòng lặp for, các vòng lặp while và do...while cũng có thể lồng vào nhau.

 6. Các lệnh nhẩy 

a. Lệnh "return" 

 - Lệnh return dùng để quay lại vị trí gọi hàm sau khi các lệnh trong hàm đó được thực thi xong. Trong lệnh return có thể có một giá trị gắn với nó, giá trị đó sẽ được trả về cho chương trình. Cú pháp tổng quát của cậu lệnh return như sau:

code
return biểu_thức
- Biểu thức là một tùy chọn (không bắt buộc). Có thể có hơn một lệnh return được sử dụng trong một hàm. Tuy nhiên, hàm sẽ quay trở về vị trí gọi hàm khi gặp lệnh return đầu tiên.

b. Lệnh "goto"
- C là một ngôn ngữ lệnh trình có cấu trúc, tuy vậy nó vẫn chưa một số câu lệnh làm phá vỡ cấu trúc chương trình. Đó là 2 lệnh goto, label. Lệnh goto cho phép chuyển điều khiển tới một câu lện bất kỳ nằm trong cùng khối lệnh hay khác khối lệnh bên trong hàm đó. Vì vậy nó vi phạm các qui tắc của một ngôn ngữ lập trình có cấu trúc. Cú pháp tổng quát là:

code:
goto lebel;

- Trong đó label là một định danh phải xuất hiện như tiền tố (prefix) của một câu lệnh khác trong cùng một hàm. Dấu chấm phẩy ";" sau label đánh dấu sự kết thúc của lệnh goto

c. Lệnh "break"

- Câu lệnh break có hai cách dùng. Nó có thể được sử dụng để kết thúc một case trong một câu lệnh switch hoặc để kết thúc ngay một vòng lặp, mà không cần kiểm tra điều kiện vòng lặp.
- Khi chương trình gặp lệnh break trong một vòng lặp, ngay lập tức vòng lặp được kết thúc và quyền điều khiển chương trình được chuyển đến câu lệnh theo sau vòng lặp.

d. Lệnh "continue"

- Lệnh continue kết thúc lần lặp hiện hành và bắt đầu lần lặp kết tiếp. Khi gặp lệnh này trong chương trình, các câu lệnh còn lại trong thân của vòng lặp được bỏ qua và quyền điều khiển được chuyển đến bước đầu của vòng lặp trong lần lặp kế tiếp. Trong trường hợp for, continue thực hiện biểu thức thay đổi của biến điều khiển và sau đó kiểm tra biểu thức điều kiện. Trong trường hợp của lệnh while và do...while, quyền điều khiển chương trình được chuyển đến biểu thức kiểm tra điều kiện

7. Hàm "exit()"

- Hàm exit() là một hàm trong thư viện chuẩn của C. Nó làm việc tương tự như một lệnh chuyển quyền điều khiển, điểm khác nhau chính là các lệnh chuyển quyền điều khiển thường được sử dụng để thoát khỏi một vòng lặp, trong khi exit() được sử dụng để thoát khỏi chương trình. Hàm này sẽ ngay lập tức kết thúc chương trình và quyền điều khiển được trả về cho hệ điều hành. Hàm exit() thường được dùng để kiểm tra một điều kiện bắt buộc cho việc thực thi của một chương trình có được thỏa mãn hay không. Cú pháp tổng quát của hàm exit() như sau:

code:
exit (int mã_trả_về);

- Ở đó mã_trả_về là một tùy chọn. Số 0 thường được dùng như một mã_trả_về để xác định sự kết thúc chương trình một cách bình thường. Những giá trị khác xác định một vài loại lỗi.





bài làm luyện tập:


Bài 1. Declare a variable which has the age of the person. Print the user’s name as many times as his age

1. Khai báo một biến có độ tuổi của con người. In tên nhiều lần của người dùng như tuổi tác của mình

sơ đồ khối:

in-ten-so-lan-tuoi
in tên số lần tuổi

code vòng lặp while;
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	char a[20];
	int i,j;
	
	printf("Ten: ");
	scanf("%s",a);
	printf("Tuoi: ");
	scanf("%d",&i);
	j=1;
	printf("\n\n\n");
	while (j<=i) {
		printf ("%d %s\t",j,a);
		j = j+1;
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}

code: vòng lặp for;
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	char a[20];
	int i,j;
	
	printf("Ten: ");
	scanf("%s",a);
	printf("Tuoi: ");
	scanf("%d",&i);
	j=1;
	printf("\n\n\n");
	for (j=1;j<=i;j++) {
		printf ("%d %s\t",j,a);
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}

code vòng lặp do - while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	char a[20];
	int i,j;
	
	printf("Ten: ");
	scanf("%s",a);
	printf("Tuoi: ");
	scanf("%d",&i);
	j=1;
	printf("\n\n\n");
	do {
		printf ("%d %s\t",j,a);
		j = j+1;
	}
	while (j<=i);	
	printf("\n\n\n");
	system("pause");
	return 0;
}

kết quả ra màn hình:

in-ten-voi-so-tuoi
in tên với số tuổi

Bài 2. The program displays even numbers from 1 to 30.

2. Chương trình sẽ hiển thị ngay cả con số 1-30.



sơ đồ khối:

in-so-tu-1-den-30
in số từ 1-30
code: vòng lặp while
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int i;
	i=1;
	while (i<=30){
		printf("%d\t",i);
		i=i+2;
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}


code vòng lặp for
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int i;
	i=1;
	for(i=1;i<=30;i=i+2){		
		printf("%d\t",i);		
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}


code: vòng lặp do-while
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int i;
	i=1;
	do{
		printf("%d\t",i);
		i=i+2;
	}
	while (i<=30);
	printf("\n\n\n");
	system("pause");
	return 0;
}


kết quả in ra màn hình

in-cac-so-tu-1-30
in các số từ 1-30

Bài: 3. The program displays numbers from 10 to 0 in the reverse order

3. Những con số hiển thị chương trình 10-0 trong thứ tự đảo ngược




sờ đồ khối :

in-tu-10-1
in từ 10-1



code vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {	
	int i;
	i=10;
	while (i>=0){
		printf("%d  ",i);
		i=i-1;
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}

code vòng lặp for:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {	
	int i;
	i=10;
	for (i=10;i>=0;i=i-1){
		printf("%d  ",i);
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}

code vòng lặp do-while
a#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */


int main(int argc, char *argv[]) {	
	int i;
	i=10;
	do{
		printf("%d  ",i);
		i=i-1;
	}
	while (i>=0);	
	printf("\n\n\n");
	system("pause");
	return 0;
}


kết quả ra màn hình:

in-tu-10-den-1
in từ 10-1


Bài: 4. The program will accept integers and display them until zero (0) is entered

4. Chương trình sẽ chấp nhận số nguyên và hiển thị chúng cho đến khi bằng không (0) được nhập


sơ đồ khối:

hien-thi-1-so-cho-toi-0
hiển thị 1 số cho tới 0

code: vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i;
	printf("vao so nguyen: ");
	scanf("%d",&i);
	
	while (i>=0){
		printf("%d  ",i);
		i=i-1;
	}
	
	printf("\n\n\n");
	
	system("pause");
	return 0;
}
code vòng lặp for:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i,j;
	printf("vao so nguyen: ");
	scanf("%d",&i);
	
	for(j=i;j>=0;j--){
		printf("%d  ",j);		
	}	
	printf("\n\n\n");
	system("pause");	
	return 0;
}
code vòng lặp do while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i;
	printf("vao so nguyen: ");
	scanf("%d",&i);
	
	do{
		printf("%d  ",i);
		i=i-1;
	}
	while (i>=0);
	printf("\n\n\n");
	
	system("pause");
	return 0;
}
kết quả in ra màn hình
in-so-giam-dan
in số giảm dần




Bài 5.  Find the factorial of a number.

  Hint:
Get the number.
To begin, set the factorial of the number to be one.
While the number is greater than one
Set the factorial to be the factorial multiplied by the number.
Decrement the number.
Print out the factorial

5. Tìm các giai thừa của một số.
   gợi ý:
Lấy tổng số.
Để bắt đầu, thiết lập giai thừa của các số được một.
Trong khi con số này lớn hơn một
Đặt thừa là thừa nhân với số.
Giảm các số.
In ra các thừa


sơ đồ khối

tim-giai-thua
Tìm giai thừa


code vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i,j,t;
	printf("Vao so: ");
	scanf("%d",&i);
	j=1;
	t=1;
	while (j<=i){
		t = t*j;
		j=j+1;
	}
	printf("%d! = %d",i,t);
		
	printf("\n\n\n");	
	system("pause");
	return 0;
}
code vòng lặp for:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i,j,t;
	printf("Vao so: ");
	scanf("%d",&i);
	j=1;
	t=1;
	for (j=1;j<=i;j++){
		t = t*j;
	}
	printf("%d! = %d",i,t);
		
	printf("\n\n\n");	
	system("pause");
	return 0;
}
code vòng lặp do-while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int i,j,t;
	printf("Vao so: ");
	scanf("%d",&i);
	j=1;
	t=1;
	do{
		t = t*j;
		j=j+1;
	}
	while (j<=i);
	printf("%d! = %d",i,t);
		
	printf("\n\n\n");	
	system("pause");
	return 0;
}
hiện ra màn hình:

tim-giai-thua
tìm giai thừa



Bài 6.  Write a program to print the series 100, 95 , 90, 85,………., 5.


6. Viết chương trình in ra hàng loạt 100, 95, 90, 85, .........., 5.


sơ đồ khối:

in-boi-so-cua-5
in ra bội số của 5

code vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int i;
	i=100;
	while (i>=1){
		printf("%d\t",i);
		i=i-5;
	}
	
	printf("\n\n\n");
	system("pause");
	return 0;
}
code vòng lặp for:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {	
	int i;
	i=100;
	for (i=100;i>=1;i=i-5){
		printf("%d\t",i);
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}
code vòng lặp do while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	
	int i;
	i=100;
	do{
		printf("%d\t",i);
		i=i-5;
	}
	while (i>=1);
	printf("\n\n\n");
	system("pause");
	return 0;
}
in ra màn  hình:

in-boi-so-cua-5
in bội số của 5




7. Chấp nhận hai số num1 và num2. Tìm tổng của tất cả các số lẻ giữa hai
   số nhập vào.
sơ đồ khối:

tong-cac-so-le-trong-khoang-biet-truoc
tổng các số lẻ trong khoảng biết trước



code vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i;
	printf("Vao A va B: ");
	scanf("%d%d",&a,&b);
	if (a%2==0) a=a+1;
	while (a<=b){
		i=i+a;
		a=a+2;
	}
	printf("\n tong cac so le tu A den B la: %d",i);
	printf("\n\n\n");
	system("pause");
	return 0;
}
code vòng lặp for:

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i;
	printf("Vao A va B: ");
	scanf("%d%d",&a,&b);
	if (a%2==0) a=a+1;
	for (;a<=b;a=a+2){
		i=i+a;
	}
	printf("\n tong cac so le tu A den B la: %d",i);
	printf("\n\n\n");
	system("pause");
	return 0;
}
code vòng lặp do-while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i;
	printf("Vao A va B: ");
	scanf("%d%d",&a,&b);
	if (a%2==0) a=a+1;
	do{
		i=i+a;
		a=a+2;
	}
	while (a<=b);
	printf("\n tong cac so le tu A den B la: %d",i);
	printf("\n\n\n");
	system("pause");
	return 0;
}


in ra màn hình

in-tong-cac-so-le-trong-khoang-biet-truoc
in tổng các số lẻ trong khoảng biết trước



8. Viết chương trình để tạo ra các loạt Fibonacci. (1,1,2,3,5,8,13, .........)

sờ đồ khối:

fibonacci
fibonacci


code vòng lặp while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i,j;
	printf("vao so:");
	scanf("%d",&a);
	i=0;
	j=1;
	b=1;
	printf("0  ");
	while (b<=a){
		b=i+j;
		j=i;
		i=b;
		printf("%d  ",b);
	}	
	printf("\n\n\n");
	system("pause");
	return 0;
}
code vòng lặp for:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i,j;
	printf("vao so:");
	scanf("%d",&a);
	i=0;
	j=1;
	b=1;
	for (b=0;b<=a;){
		printf("%d  ",b);
		b=i+j;
		j=i;
		i=b;
		
	}
	system("pause");
	return 0;
}
	
	
code vòng lặp do-while:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	int a,b,i,j;
	printf("vao so:");
	scanf("%d",&a);
	i=0;
	j=1;
	b=0;	
	do{
		printf("%d  ",b);
		b=i+j;
		j=i;
		i=b;
		
	}
	while (b<=a);	
	printf("\n\n\n");
	system("pause");
	return 0;
}
in ra màn hình:

fibonacci
fibonacci


Trên đây là toàn bộ kiến thức về vòng lặp... mong rằng bài viết của mình sẽ khiến các bạn hiểu về phần này... chúc các bạn vui vẻ...